鉴于此功能,我想更换颜色与颜色随机发生器.
document.overlay = GPolyline.fromEncoded({
color: "#0000FF",
weight: 10,
points: encoded_points,
zoomFactor: 32,
levels: encoded_levels,
numLevels: 4
});
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我尝试使用innerHTMLa 将一些脚本加载到页面中<div>.看起来脚本加载到DOM中,但它永远不会被执行(至少在Firefox和Chrome中).有没有办法让脚本在插入时执行innerHTML?
示例代码:
<!DOCTYPE html>
<html>
<body onload="document.getElementById('loader').innerHTML = '<script>alert(\'hi\')<\/script>'">
Shouldn't an alert saying 'hi' appear?
<div id="loader"></div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
所以这就是我们的场景......我们首先要做的是,我们附加一段javascript代码,将外部脚本添加到文档中,如下所示:
(function() {
var e = document.createElement('script'); e.type = 'text/javascript'; e.async = true; e.src = 'http://blabla.com/script.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s);
})();
Run Code Online (Sandbox Code Playgroud)
然后script.js发生以下情况:
function ajaxCall() {
//... some script to send ajax request which calls createDiv() after success
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
createDiv(xmlhttp.responseText);
}
};
xmlhttp.open("GET","http://blabla.com/api/");
xmlhttp.send();
}
function parseResponse(response) {
var parser = new DOMParser();
var dom = parser.parseFromString(response, "text/html");
return dom;
}
function createDiv(responsetext)
{
var dom = …Run Code Online (Sandbox Code Playgroud) 我正在阅读这个问题,接受的答案是:
通过设置元素的innerHTML属性添加的脚本不会被执行.
但是当我尝试<script>在以下代码中更改第一个标记的innerHTML时:
<script></script>
<script>
document.querySelectorAll("script")[0].innerHTML = 'console.log("Test")';
</script>
Run Code Online (Sandbox Code Playgroud)
我可以看到<script>正在执行的元素的注入代码(console.log()函数输出Test).
此外,如果我删除第一个空<script>标记(从而使第一个元素[0] 引用脚本本身),脚本在DOM中更改,但代码永远不会执行.
<script>
document.querySelectorAll("script")[0].innerHTML = 'console.log("Test")';
</script>
Run Code Online (Sandbox Code Playgroud)
什么促使这种行为?
我有一个基本上有页眉,页脚和正文视图的Web应用程序.我正在使用history.js库和HTML5 pushstate来开发网站,但我遇到的一个问题是在javascript插入DOM时运行嵌入式javascript.
几乎我所有的javascript都包含在jQuery中(function(){...})(文档就绪加载器)
有谁知道处理这个问题的好策略?谢谢!
可能重复:
如何执行动态加载的JavaScript块?
我在这里看过很多像我这样的问题,但我没有找到适合我的答案.
我正在通过AJAX加载Code,还包括一个script包含Javascript 的Tag.正如我已经发现的,这个Javascript没有被执行.
我也发现eval()可以帮助我,但由于我是Javascript中的菜鸟而且只需要它一次,我不知道究竟应该放在哪里.
我的PHP脚本返回一个字符串,我将其与Javascript分开,将其放入页面的不同部分.这工作正常.其中一个部分包括:
<div id=\"fb-root\"></div> <script>(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = \"//connect.facebook.net/de_DE/all.js#xfbml=1\";fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));</script>
Run Code Online (Sandbox Code Playgroud)
包括这样的:
document.getElementById("id").innerHTML=response1;
Run Code Online (Sandbox Code Playgroud)
在response1拆分字符串后,我从上面放置代码的变量在哪里.任何人都能够以轻松的方式帮助我吗?
我最近试图在某些脚本中找到一个错误,并在使用jQuery加载页面时发现了这个非常有趣的行为.
文件#1:Test1.htm
<div id="test"></div>
<script type="text/javascript">
$(document).ready(function(){
$('#test').load('test2.htm #content',function(){
alert('done loading!');
})
})
</script>
Run Code Online (Sandbox Code Playgroud)
文件#2:Test2.htm
<div id="content">
howdy
<script type="text/javascript">
$(document).ready(function(){
alert('hello #1');
})
</script>
<SCRIPT type="text/javascript">
$(document).ready(function(){
alert('hello #2');
})
</SCRIPT>
</div>
Run Code Online (Sandbox Code Playgroud)
现在,当我运行Test1.htm时,我得到以下内容:
正如您所看到的,唯一的区别是脚本标记大写为hello#2警报.显示hello#1警报的脚本永远不会被激活...
到目前为止,我已经在Firefox 3.55,IE 8.0.6001.18702和Chrome 3.0.195.33中对此进行了测试,结果相似.
在过去,我想从加载的内容中提取javascript,类似于这个SO问题.所以我的问题是,这是一个错误还是一个解决方案?
更新:正如下面的Jitter所述,如果Test2.htm在我加载的内容之外有脚本,则会发生同样的事情.
<div id="content">
howdy from test2.htm
</div>
<script type="text/javascript">
$(document).ready(function(){
alert('hello #1');
})
</script>
<SCRIPT type="text/javascript">
$(document).ready(function(){
alert('hello #2');
})
</SCRIPT>
Run Code Online (Sandbox Code Playgroud) javascript ×6
dom ×4
html ×3
ajax ×2
innerhtml ×2
colors ×1
history.js ×1
jquery ×1
php ×1
properties ×1
pushstate ×1
random ×1