Когда ссылки должны открывать новое окно, iphone uiwebview не будет вызывать событие, когда пользователь щелкает эти ссылки. Нам пришлось использовать javascript, чтобы проделать некоторый трюк с целевым атрибутом ссылок.
Я могу без проблем обработать тег 'a', чтобы открыть его в окне _self. Но когда я делаю то же самое с тегом base. это не работает.
Я полагаю, что базовая цель установлена JavaScript. Но базовый тег находится в голове, который может быть обработан uiwebview перед выполнением моего javascript, поэтому изменение цели может не отражаться в движке webkit .
Может кто-нибудь дать какое-нибудь предложение, чтобы я мог открыть ссылку в том же uiwebview?
Ниже приведен пример HTML, открытый в uiwebview
<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()"];