今天来简单聊聊如何让 innerHTML 进来的 scrip 代码跑起来的问题. 前台请求一个接口,接口返回一些 HTML 标签拼接成的字符串,以供前端直接 innerHTML 生成 DOM 元素,这样的做法非常普遍.但是你是否遇到过,如果字符串中拼接的 HTML 标签中有 script 标签,那么该段脚本是无法执行的,这并不是 bug,而是 w3c 的文档规定的. 比如如下这段代码,innerHTML 插入的脚本(alert)并不会执行: <div id="myDiv">…
原文:执行 innerHTML 里的 <script> 背景 有时候我们会有把一整段 HTML 动态塞进页面的需求,例如渲染了一个模板,从服务器端获取了一段广告代码等.一般情况下我们使用 container.innerHTML 即可.但是当 HTML 中出现 script 标签时,直接使用 innerHTML 并不会执行它. 一个例子 <div id="test">Hello HTML</div> <script> document.ge…
很多web开发者或许都遇到过这样的问题,程序莫名奇怪出现“不能执行已释放Script的代码”,错误行1,列1.对于这种消息描述不着边,行列描述更是让人迷茫的js错误,相信是所有调试js程序的朋友们最郁闷也最憎恨的事情!遇到这种问题,最简单的办法直接把错误贴到baidu或google那个小输入框中让他们先给点指点,再去解决,可这次却没有这么容易,在baidu搜索似乎很多人都遇到过这种问题,但是都是些什么qq空间错误,狂晕,或者就是只有问没有答的,闷! 这种错误从何调起?后面没办法,又是猜测又是tr…
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="box"></div> <script> var boxEl = document.querySelector('#box') boxEl.innerH…
script代码段 1.script代码段的执行 在Javascript代码中,可以使用script作为基本标识,script代码段在运行过程中是分段解析与执行的. 2.script代码段执行流程 在Javascript代码中,script标签是分段解析与执行的,也就是说先执行第一段script代码,然后解析与执行完毕后在执行第二个script代码,依次类推: 1)读入第一个代码段 2)编译 声明变量.声明函数.语法检查.语义检查.代码优化.分析并得到代码树. 3)执行 变量的赋值,函数的调用,…
在Web开发中,经常使用showModalDialog弹窗 今天遇到一个小问题,IE10中弹窗关闭之后提示SCRIPT5011:不能执行已释放的Script代码 网上搜罗了一些资料,发现大多都提到对象指针的事儿 而我开发的系统,有很多弹出窗口,返回值有两种字符串和JSON对象 通过对比其他弹窗发现,返回值为字符串的在IE10中可以正常运行,而返回值为JSON对象的在IE10中都提示相同的异常,并且IE6.IE7下却可以正常运行,不会有任何错误提示 并且在代码检查过程中,发现一个很特别的地方 if…
问题:有一段<script>代码,效果是点击<p>就会弹出信息,但是有的<p>点击会有效果,有的没有效果 解决: 页面代码是至上而下执行的,如果你的这个标签在<script>效果后面,那么就不会执行, 思考:如果按照上面解决的思路参考的话,那为什么jsp页面里的<script>都是写在  <head>标签里的,为什么这些效果还会执行呢? 思考解决:那是因为这些script里的代码 都包在  $(function(){   ....  …
用UltraEdit的16进制编辑模式查看代码,都是EF BB BF开头的,说明都是带BOM的.我手动的将所有文件转成UTF-8 without BOM.页面终于正常了.link,script标签乖乖的跑到head下面,网页顶部空白消失.oh yeah.这就是搞了2天的答案. 最后我在网上随便下载了知名php程序的utf-8版,发现都是UTF-8 without BOM的. 那么我们继续回头看看出现问题的现象就有答案了.“锘匡豢”在页面头部出现多次的原因是首页处理文件index.php requ…
给某个元素的innerHTML赋值,并使得值中的js代码有效(兼容多个浏览器) 症状:给某个元素的 innerHTML 设置值时,如果提供的 HTML 代码中包含js脚本,很多时候这些脚本无效,或者在某种浏览器上有效,但在其它浏览器上无效. 原因:不同浏览器对插入 innerHTML 中的脚本有不同的处理方法.经过实践,归纳如下: 对于IE,首先, script 标签必须带 defer 属性,其次,在插入时刻,innerHTML 的所属节点必须在 DOM 树中. 对于 Firefox 和Oper…
如何在网站上进行流量统计呢,可以找第三方服务网站去注册,但也可以在网站上直接添加代码,只需将以下代码copy到你的网页中,复制到</body>之前就可以啦!是不是很简单啊! <script language=JavaScript> <!-- var caution = false function setCookie(name, value, expires, path, domain, secure) { var curCookie = name + "=&quo…