我正在尝试将一些javascript注入我不拥有的网站。我试图注入的代码如下:
function submitFormForTime(time){
$(".t_h").each(function(i, obj){ // find each element with the class t_h
if ($(this).text() != time) return; // not the right one
$(this).parent().find("form").each(function(i, obj){
obj.submit(); // submit that form
});
});
}
这不起作用。似乎我使用的方法stringByEvaluatingJavaScriptFromString
不适用于嵌套括号或其他任何东西。它可以用简单的代码工作。
问题是代码没有被注入
我的完整代码如下:
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = \"function submitFormForTime(time){ "
"$(\".t_h\").each(function(i, obj){"
"if ($(this).text() != time) return;"
"$(this).parent().find(\"form\").each(function(i, obj){"
"obj.submit();"
"});"
"});"
"}\";"
"document.getElementsByTagName('head')[0].appendChild(script);"]];
非常感谢任何帮助。感谢
答案 0 :(得分:1)
没有太多麻烦我可以看到一些小东西。我重写了它,也许你可以尝试一下。
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@
"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = function submitFormForTime(time) { $('.t_h').each(function(i, obj) { if ($(this).text() == time) $(this).parent().find('form').each(function(i, obj){ obj.submit(); }); }); } document.getElementsByTagName('head')[0].appendChild(script);"]];
我希望它能像那样工作。
基本上我删除了一些双引号,并用单引号替换了一些不必转义它们。我在一行写了所有的脚本文本。
如果form是一个类,则find('form')应该是find('。form'),如果form是id,则找到('#form')。