让innerHTML的脚本也可以运行起来

最近在脑子一直在想pjblog重构的问题.当然重构前,必须把所有需要做的东西想清楚.其中想到一个js改进的内容,需要innerHTML后的脚本也可以运行.但是尝试了一下.发现IE下直接innerHTML的脚本无法执行. 尝试了几次发现,插入的HTML里,<script>前面有其他对象,并且script 设置了 defer , 这样的脚本innerHTML被IE执行了. ,但是这招对于firefox不灵~~  后来找了一些资料发现 firefox 把对象重新 append 或者 insertBefore 一次就可以执行里面的脚本了.

程序代码
var fillHTML = function (el,HTMLString) {
 if (!el) return;
if (window.ActiveXObject) { //For IE
el.innerHTML = "<img style='display:none'/>" + HTMLString.replace(/<script([^>]*)>/ig, '<script$1 defer>');
el.removeChild(el.firstChild)
} else { //For Mozilla,Opare
var nSibling = el.nextSibling;
var pNode = el.parentNode;
pNode.removeChild(el);
el.innerHTML = HTMLString;
pNode.insertBefore(el,nSibling)
}
}

(0)

相关推荐

  • 让innerHTML的脚本也可以运行起来

    最近在脑子一直在想pjblog重构的问题.当然重构前,必须把所有需要做的东西想清楚.其中想到一个js改进的内容,需要innerHTML后的脚本也可以运行.但是尝试了一下.发现IE下直接innerHTML的脚本无法执行. 尝试了几次发现,插入的HTML里,<script>前面有其他对象,并且script 设置了 defer , 这样的脚本innerHTML被IE执行了. ,但是这招对于firefox不灵~~  后来找了一些资料发现 firefox 把对象重新 append 或者 insertBe

  • Perl中使用File::Lockfile确保脚本单实例运行

    用Perl写了一些监控脚本,放在crontab中调度执行.有时候会发现一个脚本运行时间过长,会同时跑起多个实例,因此有必要为脚本加上控制,只运行一个实例. 最简单自然的想法,在脚本中检查并创建一个空的lock文件,脚本结束时再删除.通过判断文件是否存在的方式来判断脚本是否已经运行.不过这样做有个bug,如果脚本运行过程中异常终止,lock文件没有正常删除,就会导致脚本无法再运行. 空的lock文件不行,那么考虑在lock文件中加入一点内容,比如进程的PID号,然后通过检查该PID号的进程是否还在

  • Python守护进程和脚本单例运行详解

    本篇文章主要介绍了Python守护进程和脚本单例运行,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程组.工作目录以及文件创建掩码等:它可以在系统启动时从启动脚本/etc/rc.d中启动,可以由inetd守护进程启动,也可以有作业规划进程crond启动,还可以由用户终端(通常是shell)执行. Python有时需要保证只运行一个脚本实例,以避

  • shell脚本实现多进程运行的方法示例

    本文主要跟大家分享了shell脚本实现多进程运行的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 例子 for ip in 192.168.56.{1..254} do ( ping $ip -c 4 &>/dev/null; if [ $? -eq 0 ]; then echo $ip is alive fi ) & done wait 解释 重点是在于()和&,把for里面需要执行的命令当作一个组合并在后台运行. wait等待所有后台子程序执行完毕 执行效率

  • ubuntu下让python脚本可直接运行的实现方法

    我们还是以那个翻译程序为例子,上次给各位老铁讲了在windows下的应用程序打包,这一次给各位老铁讲一讲,在linux下为python文件可以自己执行,从而不需要python xxx.py. 很简单,在python源文件最上面添上下面一句话! #!/usr/bin/python3 /usr/bin/python3,是ubuntu下python3解释器所在的目录,具体可以用which python3查看 然后在执行chmod +x ./xxx.py,为python脚本增加可执行权限 例如我这里 s

  • Python实现多脚本处理定时运行

    目录 前言: 一.创建时间 二.设定时间 前言: 管理多脚本,要实现大量统计计算以及大量脚本进行统计,定时运行并反馈结果是很多大数据项目场景中十分常见的,就该问题本篇文章提供思路方法以及部分代码. 一.创建时间 首先可以通过python自带的datetime库获取本地时间,对于Pythpn时间序列想要更深入的了解可以参阅:Pandas处理时间序列数据操作详解 python3是自带datetime库的,他有自身代表时间的数据类型datetime.由此我们可以根据datetime数据结构进行运算,运

  • Android之在linux终端执行shell脚本直接打印当前运行app的日志的实现方法

    1.问题 我们一般很多时候会需要在ubuntu终端上打印当前运行app的日志,我们一般常见的做法是 1).获取包名 打开当前运行的app,然后输入如下命令,然后在第一行TASK后面的就可以看到包名 adb shell dumpsys activity top 2).我们的终端安装了pidcat.py脚本,然后执行如下的命令就可以打印当前运行app的全日志, pidcat.py packageName 3).思考,为什么每次都需要这样重复的操作呢?一说到重复,我们应该立马想到是否可以用脚本解决重复

  • linux shell(.sh)脚本编写和运行入门

    编写第一个shell脚本 在gedit中编写.sh格式的文件,保存为a.sh. 代码: #! /bin/bash # employ bash shell player1=xiaoming # define a player1 player2=ken echo "Game start! $player1 $player2" # echo is used to printf in terminal 在终端调用脚本,定位到目录,然后输入: bash a.sh 看到打印结果如上所示. 编写第一

  • Seraph sp脚本运行软件下载

    - 6.28修正了6.27中的一个验证方面的错误.感谢天天脚本的帮助.向受影响的用户道歉! - 修正了在函数内的DIM语句赋初值时没有正常赋值的问题 - 加入一些加密元素,进一步提高网络验证脚本的安全性 - 改进了共享脚本打包流程的指导性 - 网络验证脚本新支持创建充值卡,供作者自由销售 为什么要用 Seraph ?  ◆因为他是免费的,而且永远免费.  ◆因为他不仅免费,而且强大.  ◆精确灵活的内存搜索函数,支持多数据项地址位移搜索,每秒搜索30M以上.  ◆增强的屏幕图像搜索功能,支持区域

  • 用vbs确定脚本正在哪一个帐户下运行

    问: 您好,脚本专家!如何确定脚本正在哪一个帐户下运行? -- KW 答: 您好,KW.您知道,自从我们以各种托辞而开设这一专栏以来已有一段时间了,对于我们而言,这并非易事:毕竟,寻找托辞是我们这些脚本专家的拿手好戏.明确了这一点,那就让我们以我们最喜欢的一个托辞开始吧:我们将向您介绍的脚本只在 Windows XP 和 Windows Server 2003 上有效.我们将向您介绍使得该脚本在 Windows 2000 上同样有效的方法,但后者绝对不及前者好. 噢,是的:现在感觉该方法不错.

随机推荐