2011-07-01 8 views
0

私はUIWebViewで作業しています。私がしたいのは、webviewによって読み込まれたコンテンツにdivを追加することです。次のようにそのために は、私は、コードを書かれている:UIWebView stringByEvaluatingJavaScriptFromString問題

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 SimulatorでSafariブラウザ。それはうまくいった。

新しいJSを挿入しようとしている時点で、Webビューが既にロードされています。 私が見つけたものは、newDiv.styleがnullです。

このコードで何が間違っている可能性がありますか?

答えて

0

メモvariable numberOfPixelsForPaddingは使用されません。

  • チェックがuは

    webViewDidFinishLoad

    に正しく
  • コールstringByEvaluatingJavaScriptFromStringを委任しました - (無効)webViewDidFinishLoad:(のUIWebView *)のWebView { NSStringの* strInputJS = [NSStringのstringWithFormat: "のvarますnewDiv @ = document.createElement( 'div'); newDiv.innerHTML = '

    こんにちは!

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

私はこれが役立つと思います..!

+0

こんにちはDileep、返信いただきありがとうございます。私は不必要な引数を取り除こうとしました。問題は解決されません。私は、引数を削除するコード変更の問題を修正しました。 –

+0

urのjavascriptコードはwebViewDidFinishLoadにあります.. check webView.delegate = self; –

+0

webView.delegateがselfに設定されています。私のjavascriptコードはwebViewDidFinishLoadにはありませんが、webViewがロードされた後のある時点で表示されます。しかし、私はwebViewDidFinishLoad上のJSも、同じ問題を試してみました。また、JSはStyleが新しいDivに設定される直前まで作業しています。しかし、それはスタイルにアクセスする時には失敗しています。スタイルはnullです。 - 同じJSがブラウザで正常に動作します。 –

関連する問題