Safari浏览器中的JS window.open方法
Posted
技术标签:
【中文标题】Safari浏览器中的JS window.open方法【英文标题】:JS window.open method in Safari browser 【发布时间】:2018-01-10 08:14:17 【问题描述】:我在 Safari 浏览器中遇到了 JS window.open 方法的问题:
标准的 window.open() javascript 方法不能用于打开一个 来自全局 html 文件或扩展栏的新选项卡和窗口。 https://developer.apple.com/library/archive/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
所以,我正在尝试使用此代码:
safari.self.browserWindow.openTab(myLink);
但我得到一个错误:
index.html:199 Uncaught ReferenceError: safari is not defined
(在 google chrome 开发者工具 iPhone 仿真中,它也不适用于真正的 iPhone)
编辑,这里有更多上下文:
var link = 'http://www.example.com/';
something.addEventListener("touchend", function (e)
e.preventDefault();
e.stopPropagation();
if(navigator.userAgent)
safari.self.browserWindow.openTab(link);
);
为什么safari.self.browserWindow.openTab(myLink);
在 Safari 中不起作用?
【问题讨论】:
问题是什么? 问题是:为什么是“safari.self.browserWindow.openTab(myLink);”在 Safari 中不起作用,还是我做错了什么? 【参考方案1】:这样使用: safari.self.tab.dispatchMessage('openurlNewTab', 'http://www.example.com/');
//消息名称'openurlNewTab'是任意的//
【讨论】:
不起作用:var link = 'example.com'; this.addEventListener("touchend", function (e) e.preventDefault(); e.stopPropagation(); if(navigator.userAgent) safari.self.tab.dispatchMessage('openurlNewTab', link); ) ;以上是关于Safari浏览器中的JS window.open方法的主要内容,如果未能解决你的问题,请参考以下文章