我正在使用UIWebView。我想要做的是在webview加载的内容中添加div。 为此,我编写了如下代码:
NSString *strInputJS = [NSString stringWithFormat:@"var newDiv = document.createElement('div');newDiv.innerHTML = '<h1>Hi there!</h1>';document.body.appendChild(newDiv);newDiv.style.height = 100 + 'px';"];
NSString *strResult = [_webview stringByEvaluatingJavaScriptFromString:strInputJS];
但它不起作用。我尝试了与HTML页面相同的javascript,如下所示:
<html>
<head>
<title>JSTrial</title>
</head>
<body>
<script>
var newDiv = document.createElement('div');
newDiv.innerHTML = '<h1>Hi there!</h1>';
document.body.appendChild(newDiv);
newDiv.style.height = 100 + 'px';
</script>
</body>
</html>
我在Safari浏览器中打开了HTML页面,在iPhone模拟器中打开了Safari浏览器。它运作良好。
我正在尝试注入新JS时已经加载了Web视图。 我发现的是,newDiv.style为null。
这段代码可能出现什么问题?
答案 0 :(得分:0)
注意从未使用变量numberOfPixelsForPadding。
在webViewDidFinishLoad中调用stringByEvaluatingJavaScriptFromString
- (void)webViewDidFinishLoad:(UIWebView *)webView { NSString * strInputJS = [NSString stringWithFormat:@“var newDiv = document.createElement('div'); newDiv.innerHTML ='
[webView stringByEvaluatingJavaScriptFromString:strInputJS];
}
注意:
NSString *strInputJS = [NSString stringWithFormat:@"var newDiv = document.createElement('div');newDiv.innerHTML = '<h1>Hi there!</h1>';document.body.appendChild(newDiv);newDiv.style.height = 100 + '%ipx';",numberOfPixelsForPadding];
我认为这会有所帮助.. !!