javascript - 在 Safari 中获取 Google map 链接或网页链接

标签 javascript google-maps safari safari-extension

我有这个 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);
    }
};

我希望能够在以下情况下做出“if”语句:1) 如果链接是“https://maps.google.com/”,则获取 ID“leurl”;2) 如果它不是 Google映射链接,然后从地址栏中获取链接。我得到了第二部分,但我不知道如何做第一部分。我知道在制作 Google Chrome 扩展程序时如何做(document. getElementById('链接');).

我怎样才能做到这一点?任何帮助表示赞赏。先感谢您。

请原谅我,因为我不太熟悉制作 Safari 扩展。

最佳答案

如果我没理解错的话,你想把当前页面包含的一些信息放到你的全局页面中。不幸的是,使用 document.getElementById('link'); 不会直接工作,因为全局页面无法访问网页的内容(我认为出于安全原因)。

您将不得不使用注入(inject)脚本和消息传递将信息发送到全局页面。例如,您可以执行以下操作:

全局.js

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);
    }
}

注入(inject).js

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 中将它们分别设置为全局页面和注入(inject)脚本。

Apple Safari Extensions Development Guide是此类事情的重要资源。

关于javascript - 在 Safari 中获取 Google map 链接或网页链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13783034/

相关文章:

android - 在 map 上绘制的多边形的填充颜色问题

ios - 如果从 Storyboard 添加约束,GMSMapView 不显示任何内容

javascript - Safari 不重绘 css 动画上方的元素

javascript - IndexedDB.open 在 Safari iOS 8.1.1 上返回 null 并在 Cordova 上停止执行。在 iOS 8.1.2 上更差

javascript - ol.Map 不是 Safari 的功能,且 map 无法在 IE11 中显示

javascript - 未捕获的类型错误 : undefined is not a function rails3/backbone/js

java - mapView覆盖来自mysql数据库的项目

javascript - 静音网::ERR_CONNECTION_REFUSED

javascript - 观察浏览器窗口

javascript - 是否有任何支持 Internet Explorer 8 的热图 javascript 库?