我正在尝试在 HTML 源中运行 Javascript。里面的代码假设用我给出的另一个 HTML 源代码打开一个新窗口。我在这里有什么错误?
(我的目标是证明 WKWebView 具有打开嵌套弹出窗口的能力)意思是,Webview 打开了一个PopUpWindow A,然后 PopUpWindow A 将window.open()
PopUpWindow B,然后 PopUpWindow B 将window.open()
PopUpWindow C。
在我的 WKWebView 中,我做了以下事情:
- 实施的
WKUIDelegate
- 放
_webView.UIDelegate = self;
- 设置两个首选项:
wkWebViewConfig.preferences.javaScriptCanOpenWindowsAutomatically = YES; wkWebViewConfig.preferences.javaScriptEnabled = YES;
- 下面创建方法
- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
{
if (!navigationAction.targetFrame.isMainFrame) {
[webView loadRequest:navigationAction.request];
}
return nil;
}
我的示例 html 源代码如下:
<!DOCTYPE html>
<html>
<head>
<script language="javascript">
function init()
{
setTimeout( () => {
window.open("testing2.html","mywindow","toolbar=no,menubar=no,location=no,directories=no,width=910,height=750");
}, 3000)
document.redirectForm.target="mywindow";
document.redirectForm.submit();
}
</script>
</head>
<body>
Going to testing2
<form>
<input type="button" onclick="init()" value="Click" />
</form>
<script type="text/javascript">
init();
</script>
</body>
</html>
我尝试用 替换"testing2.html"
,https://www.google.com
它确实显示了谷歌网站。但同样,我的目标是确保我的 WKWebView 能够打开嵌套弹出窗口,因为某些客户端 API 的一些架构设计
我读过的一些类似的问题和答案: