如果您想按需加载Javascript.这可以通过动态创建脚本标记来完成.这种模式在

Stoyan Stefanov书 –

Javascript Patterns中有所说明

这本书剪了一下:

写一个require函数.然后这样称呼它:

require("extra.js", function () {

functionDefinedInExtraJS();

});

样品需要功能:

function require(file, callback) {

var script = document.getElementsByTagName('script')[0],

newjs = document.createElement('script');

// IE

newjs.onreadystatechange = function () {

if (newjs.readyState === 'loaded' || newjs.readyState === 'complete') {

callback();

}

};

// others

newjs.onload = function () {

callback();

};

newjs.src = file;

script.parentNode.insertBefore(newjs, script);

}

@Edit:更多针对您案例的详细信息.我会尽量简单:

创建四个文件:

> index.php:测试文件.

> code.js:具有Ajax,getJS,getHTML函数的实际代码

> content.php:任何将在没有任何JS的情况下打印纯HTML的PHP​​文件

> content.js:您想要动态运行的JavaScript代码.

的index.php

content.php

Hello, I am dynamic span came from content.php

content.js

//Ana javascript code you want to run it by Ajax function should go inside this function

function executeJS(element){

element.innerHTML = "Hello, I am dynamic span came from content.js";

}

code.js

//This function responsible for doing the ajax request for any file that will return pure HTML.

function getHTML(url, element){

var i, xhr, activeXids = [

'MSXML2.XMLHTTP.3.0',

'MSXML2.XMLHTTP',

'Microsoft.XMLHTTP'

];

if (typeof XMLHttpRequest === "function") { // native XHR

xhr = new XMLHttpRequest();

} else { // IE before 7

for (i = 0; i < activeXids.length; i += 1) {

try {

xhr = new ActiveXObject(activeXids[i]);

break;

} catch (e) {}

}

}

xhr.onreadystatechange = function () {

if (xhr.readyState !== 4) {

return false;

}

if (xhr.status !== 200) {

alert("Error, status code: " + xhr.status);

return false;

}

element.innerHTML += xhr.responseText;

};

xhr.open("GET", url, true);

xhr.send("");

}

//This function will load javascript file on-demand and call executeJS function inside that file.

function getJS(url, element, cb){

var newjs = document.createElement('script');

// IE

newjs.onreadystatechange = function () {

if (newjs.readyState === 'loaded' || newjs.readyState === 'complete') {

cb();

}

};

// others

newjs.onload = function () {

cb();

};

newjs.src = url;

element.appendChild(newjs);

}

//This is same as your function, but now can handle both PHP and JS files

function Ajax(url, id){

var element = document.getElementById(id),

regex = /\.js$/;

if(!element){

alert("Invalid ID");

return false;

}

if(regex.test(url)){ //If url ends with JS, load using getJS

getJS(url, element, function(){

executeJS(element);

});

} else {

getHTML(url, element);

}

}

ajax怎么在html与php中使用,php – 如何在通过ajax加载的html中运行javascript相关推荐

  1. jquery获取加载的html内容,jquery 获取ajax加载的html中部分内容

    最近在用wordpress开发企业主题的过程中,遇到不少客户都要求用ajax解决提交留言,在查找了很多资料的情况下,最终我决定手工改进,以不影响后续系统升级. 在做得过程中,我发现这个form的返回值 ...

  2. 开源GIS(四)——openlayers中geoserver发布的WMS与WFS加载

    目录 一.引言 二.geoserver中WMS加载 三.geoserver中WFS加载 四.总结 一.引言 使用openlayer中内置的一些类拓展已经能很好的加载arcgis的图层,比较简单:既然开 ...

  3. 解决Chrome中UEditor插入图片的选择框加载过慢问题

    解决Chrome中UEditor插入图片的选择框加载过慢问题 ../resources/plugins/ueditor/ueditor.all.js 中line24489/24498中的 accept ...

  4. html页面判断其他div为空,将外部html加载到div中 - 页面加载然后变为空白

    我确信这将会变成一件愚蠢的事情,但是自从我成为JavaScript noob以来,这里就变成了一件愚蠢的事情.将外部html加载到div中 - 页面加载然后变为空白 我想外部HTML内容加载到我的索引 ...

  5. SoapUI利用Groovy把外部数据加载到request中

    默认已经用Groovy把外部数据给读取出来了,关键是读取出来后,如何加载到request中去?这里提供了两种方法: 1.该Groovy脚本的名称是"setUp" def num = ...

  6. 加载SD卡中的SO库

    基本信息 作者:kaedea 项目:android-dynamical-loading JNI与NDK Android中JNI的使用其实就包含了动态加载,APP运行时动态加载.so库并通过JNI调用其 ...

  7. 开机启动加载驱动过程中调用PostMessage函数出错

    今天在WINCE5.0+S3C2440系统调试检测出租车是否载客的驱动的时候遇到这样的问题: 发现在开机启动加载驱动过程中调用PostMessage函数时会导致调用的线程崩溃,比如如果下面的线程在创建 ...

  8. 在.NET2.0中如何更简单的使用委托将方法加载到事件中去

    我们知道在System命名空间中,.NET为我们提供了EventHandler的委托,它的原型是delegate void EventHandler(object sender,EventArgs e ...

  9. java中的类加载器有,Java自定义的类加载器,java自定义加载,在java中类加载器有以...

    Java自定义的类加载器,java自定义加载,在java中类加载器有以 在java中类加载器有以下几种java虚拟机自带的加载器 1)根类加载器(Bootstrap,c++实现)2)扩展类加载器(Ex ...

  10. linux文件 内存映射 锁,linux – mmap:将映射文件立即加载到内存中吗?

    不,是的,也许吧.这取决于. 调用mmap通常只意味着对应用程序而言,映射文件的内容将映射到其地址空间,就像文件已加载到那里一样.或者,好像该文件确实存在于内存中,就好像它们是同一个(包括更改被写回磁 ...

最新文章

  1. phpbreak跳出几层循环_php中break如何跳出多重循环的示例代码
  2. springMVC解析视图
  3. 《D3.js数据可视化实战手册》—— 1.1 简介
  4. html5上传使用FileReader,Promise图片预览
  5. MySQL中Slave_IO_Running: Connecting问题
  6. Python os.mkdir() 和os.makedirs()方法➡创建目录
  7. Poi实现Excel的导入
  8. 川大计算机复试公平吗,看清华、川大这波操作,你还会担心网络复试会不公平吗?...
  9. Detect-and-Track: Efficient Pose Estimation in Videos(检测和追踪:视频中有效的姿态评估)论文解读
  10. “麒”聚信创,共赢未来——信创解决方案分享会(首场)成功举办
  11. 信息通信网络机务员三级(高级)复习知识点
  12. Unity3D教程:触发器实现简单的场景跳转
  13. TOM邮箱布局商务市场,致力打造更全能的邮箱办公产品!
  14. 上了 BI,B 就 I 了吗?
  15. Elasticsearch的查询
  16. ES6新增关键字:let和const及let的常用场景
  17. RAID 1 的优点缺点和应用场景
  18. 【面经】微软SWE暑期实习
  19. nhibernate访问mysql配置_NHibernate各种数据库连接参数文件配置方法说明
  20. DOS或命令行下查看进程,结束进程命令

热门文章

  1. Mobile Phone Network CodeForces - 1023F(并查集lca+修改环)
  2. 试解析Tomcat运行原理(一)--- socket通讯
  3. [WP8] ListBox的Item宽度自动填满
  4. linq to xml查询绑定GridView
  5. C# 给自己写的软件,加注册码功能。
  6. 备忘:SharePoint默认的欢迎WebPart中超链接样式
  7. (篇十)用结构体数组处理学生成绩、结构体类型函数求平均值
  8. Python可以这样学(第十季:网络爬虫实战)-董付国-专题视频课程
  9. java获取空闲端口_获取系统空闲端口
  10. docker -v 文件夹下没有数据_微服务就是Dubbo?并没有那么简单!微服务架构+Docker+k8s了解下...