加载给定url的html内容,并在JavaScript中精确地放置在那里(如document.write())
Load html contents of a given url and place exactly there (like document.write()) in JavaScript
我想编写一个JavaScript代码来加载给定URL的HTML内容,并将加载的HTML代码精确地放置在脚本放置的位置。(也许这看起来像iframe标签的功能,但我不希望"iframe标签"成为一个媒介。我只想加载HTML代码并将其放置在那里不添加任何容器或额外的父元素)像这样:
var url = "http://example.com/";
var html = loadhtmlcontents(url); // something like simplexml_load_file($url) for php and xml
document.write(html); // somthing like saveHTML() in DOMDocument class of php
我已经尝试过AJAX的方法,但它不工作:
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.wirte( xmlhttp.responseText);
}
}
xmlhttp.open("GET", Url, false );
xmlhttp.send();
你能给我一个相等的或更正这些吗?(在这种情况下,我更喜欢纯JS方法,而不是JQuery)
获取当前的script
标签是可能的,但这里有另一种方法(记住它用id
标签替换了整个元素):
body
标签:
<script id='test'>docWrite('test', '/echo/html')</script>
Javascript声明一个新函数:
function docWrite(id, url) {
var xmlhttp = new XMLHttpRequest(),
_id = id;
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState == 4
&& xmlhttp.status == 200) {
var el = document.getElementById(_id),
textnode = el.firstChild,
div = document.createElement('div');
div.id = _id;
div.appendChild(textnode);
el.parentNode.insertBefore(div, el.nextSibling);
el.parentNode.removeChild(el);
console.log(xmlhttp.responseText);
}
}
xmlhttp.open("GET", url, false );
xmlhttp.send();
}
http://jsfiddle.net/dpgk1Lx2/这里,我所做的就是复制id
相关标签的内容(没有responseText
要显示)。在您的用法中,您可以这样做:
function docWrite(id, url) {
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState == 4
&& xmlhttp.status == 200) {
var el = document.getElementById(_id)
div = document.createElement('div');
div.id = _id;
div.appendChild(xmlhttp.responseText);
el.parentNode.insertBefore(div, el.nextSibling);
el.parentNode.removeChild(el);
}
}
xmlhttp.open("GET", url, false );
xmlhttp.send();
}
我知道你正在寻找一个jQuery-less版本…但我要先把这个贴出来…只是为了表明它是多么的简单(并且它在为您进行AJAX调用,处理回调等方面绕过浏览器差异)。
<div id="someID"></div>
<script>$('#someID').load('someurl.html');</script>
相关文章:
- 函数在例如$(document).ready()上注册时的通知
- EmberJS没有找到任何模型,但它'在那里
- 关于在动态创建的元素中添加预先样式化的类或在那里添加stying&然后
- 如何制作自适应块并在那里添加块
- 嘿,在那里寻找解决方案
- 保证在任何 document.location 更改之前执行 Javascript AJAX
- 如何使鼠标输入功能具有淡入淡出效果并保持在那里
- 我可以控制台.debug()并在那里制作Chrome Dev-tools断点吗?
- 转到页面并在那里打开链接,一气呵成
- 无法读取 null 的属性“addEventListener”---但 ID 在那里
- JavaScript 函数在 jquery $(document).ready 中不起作用
- 它在那里查询轮播类似于mootools icarousel
- 在 Javascript document.write 中添加空格
- 从 html5 画布中删除使用 Javascript 放置在那里的图像
- Ruby on Rails - 如何将换行符输入文本区域,以便在显示内容时,换行符也在那里
- 如何获取在使用 document.execCommand 突出显示文本时创建的元素
- 如何修复页面顶部的导航栏并在页面滚动时将其保留在那里
- findOne 抛出未定义,即使数据在那里
- 加载给定url的html内容,并在JavaScript中精确地放置在那里(如document.write())
- document.getElementById null 和/或不起作用,即使它在那里并且加载后也是如此