知道为什么下面的代码片段没有将脚本元素添加到DOM中吗?
var code = "<script></script>";
$("#someElement").append(code);
Run Code Online (Sandbox Code Playgroud) 我正在寻找将JavaScript注入WebView(在Cocoa中)的不同方法.
我试图将一些javascript注入<head>已加载到WebView的HTML文件的标记中.
以下方法对我不起作用.它似乎只适用于非常简单的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);"]];
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以使用更复杂的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();
});
});
}
Run Code Online (Sandbox Code Playgroud) 是否可以在jQuery .html()函数中获取JavaScript脚本标记?
function pleaseWork(){
$('#content').html('<h3 style="color:#335c91">This is the header</h3><div class="holder"><script type="text/javascript" src="javascriptFile.js"></script></div>');
}
Run Code Online (Sandbox Code Playgroud)
我想要完成的是当用户点击按钮时,此标题和JavaScript代码显示在div内容中,现在当我点击按钮时,没有标题显示,它转到空白页面并显示JavaScript代码(它有效,但不是我希望它如何工作.)
我想在页面加载后加载外部JavaScript.实际上,javascript包含广告的来源,并且其制作页面加载速度很慢.我想要的是延迟加载和执行广告,以确保快速页面加载.
谢谢,比拉尔
我正在尝试在新选项卡中运行脚本.我使用的代码是这样的:
$ = jQuery;
function openAndPush(url, id) {
var win = window.open('https://example.com' + url + '?view=map');
var element = $('<script type="text/javascript">console.log("Starting magic...");var region_id='+id+';$=jQuery;var p=$(\'div["se:map:paths"]\').attr(\'se:map:paths\');if(p){console.log("Found! pushing..."); $.get(\'https://localhost:9443/addPolygon\', {id: region_id, polygon: p}, function(){console.log("Done!")})}else{console.log("Not found!");}</script>').get(0);
setTimeout(function(){ win.document.body.appendChild(element);
console.log('New script appended!') }, 10000);
}
Run Code Online (Sandbox Code Playgroud)
考虑以下因素:
openAndPush('/target', 1)),然后检查另一个检查器中的代码时,一个用于新窗口,Starting magic...未显示控制台消息(我等待10秒甚至更多).但是,新的DOM元素(我正在创建的这个脚本)显示在Elements选项卡中(并且,在第一个控制台/检查器中,我可以看到该New script appended!消息).(在两种情况下jQuery都存在,但不占用$标识符,这似乎是未定义的 - 所以我手动占用它)
我得出的结论是我的脚本没有在新窗口中执行.
我错过了什么?如何确保代码正在执行?