我正在創建一個safari擴展。當用戶右鍵單擊safari中的鏈接時,應該彈出上下文菜單。當用戶點擊「獲取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>
如何獲得的網址是什麼?它總是打開「未找到」。
沒有任何區別 - 「未找到」仍然是打開的網址。我沒有任何開發safari擴展的經驗,所以我只是錯過了一些。 –
大家知道,這段代碼是一個更大的超級有用項目的重要組成部分。如果你能弄明白這一點,你可以幫助我解決一個可以爲無數人節省時間的問題! XD –