사파리 확장 기능을 만들고 있습니다. 사파리의 링크를 마우스 오른쪽 버튼으로 클릭하면 컨텍스트 메뉴가 표시됩니다. 사용자가 "URL 가져 오기"를 클릭하면 클릭 한 URL이 새 창에서 열립니다. 나는 URL을 얻는 방법을 알아낼 수 없다! 대신 항상 "찾을 수 없음"이 열립니다.이 코드가 Safari에서 URL을 가져 오는 이유는 무엇입니까?
injected.js
:
document.addEventListener('contextmenu', handleContextMenu, false);
function handleContextMenu(event)
{
var target = event.target;
while(target != null && target.nodeType == Node.ELEMENT_NODE && target.nodeName.toLowerCase() != "a")
{
target = target.parentNode;
}
if(target.href)
{
safari.self.tab.setContextMenuEventUserInfo(event, target.href);
}
else
{
var foo = "href not found";
safari.self.tab.setContextMenuEventUserInfo(event, foo);
}
}
Global.html
:
<!DOCTYPE HTML>
<script>
var lastUrl;
safari.application.addEventListener("contextmenu",handleContextMenu,false);
safari.application.addEventListener('command', handleCommand, false);
function handleContextMenu(event)
{
var query = event.userInfo;
lastUrl = query;
event.contextMenu.appendContextMenuItem("getUrl", "Get URL");
}
function handleCommand(event)
{
if(event.command === 'getUrl')
{
if (lastUrl)
{
safari.application.openBrowserWindow().activeTab.url = lastUrl;
}
else
{
safari.application.openBrowserWindow().activeTab.url = "not found";
}
}
}
</script>
어떻게 URL을받을 수 있나요? 항상 "찾을 수 없음"이 대신 열립니다.
아무런 차이가 없습니다. "찾을 수 없음"은 여전히 열리는 URL입니다. 사파리 확장 기능을 개발 한 경험이 없으므로 이제 막 실수를 저지르고 있습니다. –
코드의이 부분은 훨씬 더 큰 슈퍼 유용한 프로젝트의 중요한 부분입니다. 당신이 이것을 파악할 수 있다면, 당신은 사람들이 수많은 시간을 절약 할 수있는 문제를 해결하도록 도울 수 있습니다! XD –