ajax怎么在html与php中使用,php – 如何在通过ajax加载的html中运行javascript
如果您想按需加载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相关推荐
- jquery获取加载的html内容,jquery 获取ajax加载的html中部分内容
最近在用wordpress开发企业主题的过程中,遇到不少客户都要求用ajax解决提交留言,在查找了很多资料的情况下,最终我决定手工改进,以不影响后续系统升级. 在做得过程中,我发现这个form的返回值 ...
- 开源GIS(四)——openlayers中geoserver发布的WMS与WFS加载
目录 一.引言 二.geoserver中WMS加载 三.geoserver中WFS加载 四.总结 一.引言 使用openlayer中内置的一些类拓展已经能很好的加载arcgis的图层,比较简单:既然开 ...
- 解决Chrome中UEditor插入图片的选择框加载过慢问题
解决Chrome中UEditor插入图片的选择框加载过慢问题 ../resources/plugins/ueditor/ueditor.all.js 中line24489/24498中的 accept ...
- html页面判断其他div为空,将外部html加载到div中 - 页面加载然后变为空白
我确信这将会变成一件愚蠢的事情,但是自从我成为JavaScript noob以来,这里就变成了一件愚蠢的事情.将外部html加载到div中 - 页面加载然后变为空白 我想外部HTML内容加载到我的索引 ...
- SoapUI利用Groovy把外部数据加载到request中
默认已经用Groovy把外部数据给读取出来了,关键是读取出来后,如何加载到request中去?这里提供了两种方法: 1.该Groovy脚本的名称是"setUp" def num = ...
- 加载SD卡中的SO库
基本信息 作者:kaedea 项目:android-dynamical-loading JNI与NDK Android中JNI的使用其实就包含了动态加载,APP运行时动态加载.so库并通过JNI调用其 ...
- 开机启动加载驱动过程中调用PostMessage函数出错
今天在WINCE5.0+S3C2440系统调试检测出租车是否载客的驱动的时候遇到这样的问题: 发现在开机启动加载驱动过程中调用PostMessage函数时会导致调用的线程崩溃,比如如果下面的线程在创建 ...
- 在.NET2.0中如何更简单的使用委托将方法加载到事件中去
我们知道在System命名空间中,.NET为我们提供了EventHandler的委托,它的原型是delegate void EventHandler(object sender,EventArgs e ...
- java中的类加载器有,Java自定义的类加载器,java自定义加载,在java中类加载器有以...
Java自定义的类加载器,java自定义加载,在java中类加载器有以 在java中类加载器有以下几种java虚拟机自带的加载器 1)根类加载器(Bootstrap,c++实现)2)扩展类加载器(Ex ...
- linux文件 内存映射 锁,linux – mmap:将映射文件立即加载到内存中吗?
不,是的,也许吧.这取决于. 调用mmap通常只意味着对应用程序而言,映射文件的内容将映射到其地址空间,就像文件已加载到那里一样.或者,好像该文件确实存在于内存中,就好像它们是同一个(包括更改被写回磁 ...
最新文章
- phpbreak跳出几层循环_php中break如何跳出多重循环的示例代码
- springMVC解析视图
- 《D3.js数据可视化实战手册》—— 1.1 简介
- html5上传使用FileReader,Promise图片预览
- MySQL中Slave_IO_Running: Connecting问题
- Python os.mkdir() 和os.makedirs()方法➡创建目录
- Poi实现Excel的导入
- 川大计算机复试公平吗,看清华、川大这波操作,你还会担心网络复试会不公平吗?...
- Detect-and-Track: Efficient Pose Estimation in Videos(检测和追踪:视频中有效的姿态评估)论文解读
- “麒”聚信创,共赢未来——信创解决方案分享会(首场)成功举办
- 信息通信网络机务员三级(高级)复习知识点
- Unity3D教程:触发器实现简单的场景跳转
- TOM邮箱布局商务市场,致力打造更全能的邮箱办公产品!
- 上了 BI,B 就 I 了吗?
- Elasticsearch的查询
- ES6新增关键字:let和const及let的常用场景
- RAID 1 的优点缺点和应用场景
- 【面经】微软SWE暑期实习
- nhibernate访问mysql配置_NHibernate各种数据库连接参数文件配置方法说明
- DOS或命令行下查看进程,结束进程命令
热门文章
- Mobile Phone Network CodeForces - 1023F(并查集lca+修改环)
- 试解析Tomcat运行原理(一)--- socket通讯
- [WP8] ListBox的Item宽度自动填满
- linq to xml查询绑定GridView
- C# 给自己写的软件,加注册码功能。
- 备忘:SharePoint默认的欢迎WebPart中超链接样式
- (篇十)用结构体数组处理学生成绩、结构体类型函数求平均值
- Python可以这样学(第十季:网络爬虫实战)-董付国-专题视频课程
- java获取空闲端口_获取系统空闲端口
- docker -v 文件夹下没有数据_微服务就是Dubbo?并没有那么简单!微服务架构+Docker+k8s了解下...