当链接应该打开一个新窗口时,iphone uiwebview将不会在用户单击这些链接时触发事件。我们不得不使用javascript对链接的目标属性做一些技巧。
我可以处理'a'标签在'_self'窗口打开,没有问题。但是,当我使用'base'标签以同样的方式执行此操作时。它不起作用。
我相信基本目标是由javascript设置的。但基本标记位于头部,可以在执行javascript之前由uiwebview处理,因此目标更改可能不会反映在webkit引擎中。
有人可以提出一些建议,所以我可以在同一个uiwebview中打开链接吗?
以下是在uiwebview中打开的示例HTML
<html>
<head>
<base target='_blank'>
</head>
<body>
<a href='http://google.ca'>google</a>
</body>
</html>
以下是
中要执行的代码(void)webViewDidFinishLoad:(UIWebView *)webView
static NSString* js = @""
"function bkModifyBaseTargets()"
"{"
"var allBases = window.document.getElementsByTagName('base');"
"if (allBases)"
"{"
"for (var i = 0; i < allBases.length; i++)"
"{"
"base = allBases[i];"
"target = base.getAttribute('target');"
"if (target)"
"{"
"base.setAttribute('target', '_self');"
"}"
"}"
"}"
"}";
[webView stringByEvaluatingJavaScriptFromString: js];
[webView stringByEvaluatingJavaScriptFromString: @"bkModifyBaseTargets()"];