Я пытаюсь запустить Javascript в HTML Source. Код внутри должен открыть новое окно с другим 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
, он показывает веб-сайт Google. Но опять же, моя цель здесь - убедиться, что мой WKWebView может открывать Вложенное всплывающее окно из-за некоторой архитектуры какого-то клиентского API
Некоторые похожие вопросы и ответы, которые я читал:
{ ссылка }
{ ссылка }
{ ссылка }