UIWebView stringByEvaluatingJavaScriptFromString问题

时间:2011-07-01 08:16:00

标签: iphone

我正在使用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。

这段代码可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

注意从未使用变量numberOfPixelsForPadding。

  • 检查你是否正确设置了委托
  • 在webViewDidFinishLoad中调用stringByEvaluatingJavaScriptFromString

    - (void)webViewDidFinishLoad:(UIWebView *)webView {     NSString * strInputJS = [NSString stringWithFormat:@“var newDiv = document.createElement('div'); newDiv.innerHTML ='

    Hi there!

    '; document.body.appendChild(newDiv ); newDiv.style.height = 100 +'px';“];

    [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];

我认为这会有所帮助.. !!