繁体   English   中英

不能使用包含ajax页面xmlhttp的javascript

[英]cant use javascript from included ajax page xmlhttp

使用XMLhttpRequest获得了一些小的ajax,它取代了div并按预期工作。

但我似乎无法获得包含ajax页面来运行javascript。 如何从包含的ajax页面运行javascript?

即:mainpage.php有选择形式,在选择更改事件includepage.php加载到页面上的div并根据选择框中选择的内容进行更改,这可以正常使用xmlhttp,我正在尝试的问题从包含的页面运行javascript,即:一个简单的警告框。

没有代码真正过去,也许这是一个标准的行为,但我找不到任何信息,所以任何帮助如何从一个包含的ajax页面中取代div运行javascript将非常感激。

您似乎对代码没有任何想法吗?

所以我给你一个关于这一个的例子

一页page1.aspx

有一个javascript函数调用abc()

现在您可以将此功能添加到主页面并添加uc(usercontrol)

和这样调用这个函数

var aa=abc( );

所以将调用abc

如果您分别有两个页面,那么您也可以调用此函数,因为当JavaScript呈现到浏览器中时,它会根据您在页面上包含的文件而自负

当您通过innerHTML在内容中插入脚本时,浏览器不会运行这些脚本。

如果您希望它们运行,那么您需要在该内容中查找脚本,从中获取文本并将它们插入到新脚本中,然后将其插入到文档中。 只要脚本不需要使用document.write()就地运行,这就可以正常工作,像jQuery这样的库在将HTML插入文档时会自动执行此操作。

以下是它的工作原理的基本演示: http//jsfiddle.net/jfriend00/2tRQW/

// insert dynamic content that has a script in it
// simulate what's happening with your ajax call
var s = 'Hello<s' + 'cript>alert("Hello");  document.getElementById("result").style.color = "red";</s' + 'cript>';
var obj = document.getElementById("result");
obj.innerHTML = s;

// find the script tags in that dynamic content
var scripts = obj.getElementsByTagName("script");

// create new script tags that you can copy the script content over to
// and then insert the new script tags into the document to make the browser
// actually run the scripts
var head = document.getElementsByTagName("head")[0];
for (var i = 0; i < scripts.length; i++) {
    var oldScript = scripts[i].parentNode.removeChild(scripts[i]);
    var newScript = document.createElement("script");
    newScript.type = "text/javascript";
    newScript.textContent = oldScript.textContent;
    head.appendChild(newScript);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM