`

coos.$script 动态插入脚本并执行的方法

    博客分类:
  • coos
阅读更多
/** 
 * 动态插入脚本并执行 
 * @param scriptStr 
 * @param el dom元素对象或ID 可以不传入 
 * @exsample coos.$script("<script>alert(2);<\/script>"); 
 */ 
coos.$script = function(scriptStr,el) 
{ 
        var el = coos.$obj(el); 
        if(!el){ 
                var div = coos.$create("div"); 
                div.style.display = "none"; 
                coos.$append(document.body,div); 
                el = div; 
        } 
        if(coos.browser.msie){ 
                scriptStr = '<div style="display:none">ie</div>' + scriptStr; 
                //当节点被移除的时候,ie会重新解析节点内部的html,有脚本则会执行相关的脚本,script要加上defer属性 
                scriptStr = scriptStr.replace(/<script([^>]*)>/gi,'<script$1 defer>'); 
                el.innerHTML = scriptStr; 
                el.removeChild(el.firstChild); 
        }else{ 
                var el_next = el.nextSibling; 
                var el_parent = el.parentNode; 
                el_parent.removeChild(el); 
                el.innerHTML = scriptStr; 
                if (el_next) { 
                        el_parent.insertBefore(el, el_next); 
                }else { 
                        el_parent.appendChild(el); 
                } 
        } 

}; 

 

源码请看coos脚本库

 

http://code.google.com/p/coos/source/browse/trunk/coos/WebRoot/scripts/labs/base/coos.ext.%24.js

 

测试页面

<html> 
<head> 
<title>test_$</title> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8"> 
<script type="text/javascript" src="../scripts/coos.js"></script> 
</head> 
<body> 
<div>test_$ page</div> 
<script type="text/javascript"> 
coos.$script("<script>alert(2);<\/script>"); 
</script> 
</body> 
</html> 

 

0
0
分享到:
评论

相关推荐

    Nucleo_F103_COOS.rar

    这些文件将帮助开发者理解如何在STM32F103ZET6上搭建并运行带有COOS操作系统的应用程序。通常,这样的工程文件会包含以下部分: 1. **启动文件**:初始化堆栈、设置中断向量表等,通常是startup文件。 2. **系统...

    LPC1766_LwIP_CoOS.zip

    【标题】"LPC1766_LwIP_CoOS.zip" 是一个包含NXP LPC1766微控制器使用的LwIP轻型网络协议栈与CoOS实时操作系统的示例工程。这个压缩包提供了在LPC1766芯片上实现TCP/IP网络功能和实时操作系统协同工作的完整资源。 ...

    iframe自适应高度

    - **`onload`事件**:当`&lt;iframe&gt;`加载完成后触发`onload`事件,执行`coos.iframe.autoHeight`函数。 - **`autoHeight`函数**: - 获取`&lt;iframe&gt;`的`id`。 - 获取`&lt;iframe&gt;`内部的文档对象。 - 如果`&lt;iframe&gt;`...

    maven-pax-plugin-1.5-coos3.jar

    maven-pax-plugin-1.5-coos3.jar

    maven-pax-plugin-1.5-coos2.jar

    maven-pax-plugin-1.5-coos2.jar

    maven-pax-plugin-1.5-coos1.jar

    maven-pax-plugin-1.5-coos1.jar

    maven-pax-plugin-1.5-coos0.jar

    maven-pax-plugin-1.5-coos0.jar

    CoOS-1.1.3实时操作系统

    4. **定时器管理**:CoOS-1.1.3支持软件定时器,为开发者提供了一种定时执行任务的手段,对于周期性工作或超时处理非常有用。 5. **线程同步与通信**:内建了信号量、邮箱、消息队列等同步通信机制,便于多任务间的...

    COOS STM32专用操作系统

    通过任务切换,COOS可以在多个任务间进行动态调度,使得系统能同时处理多个任务。 2. **优先级**:任务有优先级之分,优先级高的任务在系统中得到优先执行。COOS通常采用抢占式调度,即高优先级任务一旦就绪,即使...

    STM32F103的COOS移植

    确保定时器中断正确触发,并在中断服务例程中调用`Os_Sched()`以执行任务切换。 7. **测试与调试**:编写测试代码,验证任务之间的交互、同步和通信机制,如信号量、事件旗标或消息队列。使用KEIL的调试工具进行...

    STM32_IAR_CoOS工程模板

    STM32_IAR_CoOS工程模板是一个专为STM32F103微控制器设计的集成开发环境(IDE)项目模板,它充分利用了IAR Embedded Workbench的编译工具链,并结合了CooCox CoOS实时操作系统。这个模板为开发者提供了一个快速启动...

    电子-Coos串口实验.zip

    在电子-Coos串口实验.zip这个压缩包中,我们聚焦于...在实践中,开发者不仅需要理解STM32的硬件特性,还需要掌握CoOS的使用方法以及串口通信的编程技巧。通过这个实验,可以提升对单片机和嵌入式系统开发的全面理解。

    CooCox CoOS用户手册

    接下来,我们将通过一个示例进一步理解 CooCox CoOS 的使用方法。在这个示例中,我们将使用 Keil RealView MDK 开发工具和 NXP 的 EM-LPC1700 开发板实现一个简单的基于 CoOS 的 demo。 **示例描述**: - **设备**...

    CoOS中文手册

    CooCox CoOs中文用户手册

    电子-Coos流水灯.zip

    《电子-Coos流水灯.zip》是一个关于嵌入式系统开发的资源包,主要涉及的是STM32系列微控制器,特别是STM32-F0、F1和F2型号。这个项目的核心是实现一种常见的LED显示效果——流水灯。下面将详细阐述相关知识点。 一...

    coos嵌入式实时操作系统中文指导手册

    ### coos嵌入式实时操作系统中文指导手册 #### 1. 关于CooCoxCoOS CooCoxCoOS是一款专为ARM Cortex-M系列微控制器设计的实时操作系统(RTOS)。该操作系统具有开放源代码的特点,使得开发者可以自由地对其进行修改...

    STM32 COOS-STM32 轻量级系统.rar

    1. **阅读文档**:理解COOS的设计理念、架构以及API函数的使用方法。 2. **分析源码**:通过阅读源码,理解任务调度、同步机制等核心功能的实现。 3. **编写示例**:动手编写简单的示例程序,如创建任务、设置定时器...

    CooCox CoOS - 免费并开源的嵌入式实时操作系统

    一款免费并开源的嵌入式实时多任务操作系统,最小系统内核小于1KB。 具有高度可裁剪性,支持优先级抢占和时间片轮转两种任务调度机制,自适应任务调度算法,中断延时时间几乎为0,可检测堆栈溢出,支持信号量、邮箱...

    Coos操作系统

    Coos操作系统源代码■免费并开源 ■ARM Cortex M3及M0定制操作系统 ■高度可裁剪性,最小系统内核仅974Byte ■支持优先级抢占和时间片轮转 ■自适应任务调度算法 ■中断延时时间趋近于零 ■堆栈溢出检测 ■信号量、...

Global site tag (gtag.js) - Google Analytics