我正在创建一个简单的ajax调用,它检索指定url的内容并将其写入页面.我遇到的问题是它用这些信息替换了整个身体内容
这是JS:
(function(){ var mb = window.mb = {}; function get_ad(url, parameters){ var result = ""; var http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/html'); } } else if (window.ActiveXObject) { // IE var avers = ["Microsoft.XmlHttp", "MSXML2.XmlHttp", "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.5.0"]; for (var i = avers.length -1; i >= 0; i--) { try { http_request = new ActiveXObject(avers[i]); if (http_request){ break; } } catch(e) {} } } if (!http_request) { alert('Cannot create XMLHTTP instance'); return false; } http_request.onreadystatechange = function(){ if (http_request.readyState == 4) { if (http_request.status == 200) { gen_output(http_request.responseText); } else { alert('Error'); } } } http_request.open('GET', url + parameters, true); http_request.send(null); } function gen_output(ad_content){ document.write(""); document.write(ad_content); document.write(""); } get_ad("http://localhost/test/test.html", ""); })();
这是html:
Untitled Document i am text before
i am text after
使用firebug进行检查,我看不到之前的文本或之后的文本,只是 使用该 将元素放在脚本之前,以便在调用回调函数时确保它存在: 放置脚本的位置并不重要,因为没有任何内容会写入文档. 如果你无法控制远程脚本,你可能会写这样的东西:document.writes
文本,之后的文本将正确显示.jQuery不是一个选项,我必须在没有大型库的帮助下这样做,因为大小和速度是至关重要的.
1> Guffa..:document.write
文档完成加载后,您无法使用.如果这样做,浏览器将打开一个替换当前文档的新文档.innerHTML
属性将HTML代码放在元素中:function gen_output(ad_content){
document.getElementById('mb_ad').innerHTML = ad_content;
}
i am text before
i am text after
2> Leon Fedotov..:
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有