JavaScriptをWebView(Cocoa)に注入するさまざまな方法を探しています。Objective-Cを使用したJavaScript注入方法
WebViewに読み込まれたHTMLファイルの<head>
タグにJavaScriptを挿入しようとしています。
次の方法は私にとっては機能しません。それだけで(私がテストしたものから)なしネストされた括弧で、非常に簡単なJavaScriptで動作するようです:
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = \"some simple JavaScript"
"}\";"
"document.getElementsByTagName('head')[0].appendChild(script);"]];
はより複雑にはJavaScript/jQueryの関数でこれを行うのいずれかの他の方法はありますか?
次のように私は注入しようとしている完全なコードは次のとおりです。
function submitFormForTime(time){
$(\".t_h\").each(function(i, obj) {
if ($(this).text() != time) return;
$(this).parent().find(\"form\").each(function(i, obj){
obj.submit();
});
});
}
あなたの上記の例では動作し、結果=考える「成功!」コンソールに印刷されます。しかし、 "success"の代わりに自分のjavascriptを使用すると、空白の引用符がコンソールに表示されます。何か案は? –
関数を一度実行する場合は、コードを '(function(){...})()'に変更してください。 – nielsbot
関数を複数回使用する場合は、2ステップを使用します。あなたの関数を変数に代入するには( 'submitFormForTime = function(time){...}')、関数を実行するたびに 'submitFormForTime(...)'を実行します。 – nielsbot