[英]grab Google Map link or web link in Safari
我有这个javascript代码:
function handleCommand (event) {
if (event.command === 'send') {
sendingLink(event.target.browserWindow.activeTab.url);
} else if (event.command === 'sendMenu') {
sendingLink(safari.application.activeBrowserWindow.activeTab.url);
}
};
我希望能够在以下位置做出“如果”声明:1)如果链接为“ https://maps.google.com/,则获取ID”为“ leurl”,并且2)如果不是Google Map链接,然后从地址栏中获取链接。我得到了第二部分,但我不知道如何做第一部分。尽管如此,我在制作Google Chrome扩展程序时知道如何做到这一点( document.getElementById('link');
)。
我将如何做到这一点? 任何帮助表示赞赏。 先感谢您。
请原谅我,因为我对制作Safari扩展不太熟悉。
如果我理解正确,则希望将当前页面中包含的某些信息添加到全局页面中。 不幸的是使用document.getElementById('link');
无法直接使用,因为全局页面无法访问网页的内容(出于安全考虑,我认为)。
您将必须使用注入的脚本和消息传递将信息发送到全局页面。 例如,您可以执行以下操作:
const app = safari.application;
app.addEventListener('message', handleMessage, false);
function sendingLink(link) {
app.activeBrowserWindow.activeTab.page.dispatchMessage('getLink');
}
function handleMessage(msg) {
if (msg.name === 'returnLink') {
alert(msg.message);
}
}
safari.self.addEventListener('message', handleMessage, false);
function handleMessage(msg) {
if (msg.name === 'getLink') {
// Trigger share button. Maybe:
// document.getElementById('link').click();
var link = document.getElementById('leurl').value;
safari.self.tab.dispatchMessage('returnLink', link);
}
}
然后,确保在Safari Extension Builder中将它们分别设置为全局页面和注入的脚本。
《 Apple Safari扩展开发指南》是此类资源的绝佳资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.