Я создаю расширение сафари. Когда пользователь щелкает правой кнопкой мыши по ссылке в сафари, он должен вызвать контекстное меню. Когда пользователь нажимает «Получить URL-адрес», он должен открыть щелчок по URL-адресу в новом окне. Я не могу понять, как получить URL! Он всегда открывается «не найден».Почему этот код не получает URL-адрес из Safari?
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 –