gpt4 book ai didi

javascript - 有没有更好的方法来获取 outerHtml?

转载 作者:搜寻专家 更新时间:2023-10-31 08:08:38 25 4
gpt4 key购买 nike

我正在尝试为 jQuery 元素获取一致的跨浏览器 outerHtml,尤其是 $("html").outerHtml()。例如,如果页面源是这样的:

<html><script src="blah.js"></script><div class="foo"   id='bar'></p></div></html>

我希望能够使用 $("html").outerHtml(); 获取包含元素本身的 HTML 字符串,这将是:

<html><script src="blah.js"></script><div class="foo" id="bar"><p></p></div></html>

我一直在使用 Brandon Aaron 的 outerHtml plugin看起来像这样:

return $('<div>').append($("html").first().clone()).html();

然而,这似乎实际上是在尝试重新加载文档中的任何外部引用文件(脚本、样式表),这似乎只是为了获取包装元素的 HTML 源代码。 Javascript 甚至可以将 HTML 元素放入 DIV 元素中吗?

在本地,我收到此错误。与 AJAX 规则有关?

XMLHttpRequest cannot load file:///C:/demo.js?_=1311466511031. Origin null is not allowed by Access-Control-Allow-Origin.

有没有更好的方法获取outerHtml?我真的很想在执行此操作时避免任何网络调用。

最佳答案

写了我自己的解决方案,它只渲染了包装元素:

(function($){
$.fn.outerHtml = function() {
if (this.length == 0) return false;
var elem = this[0], name = elem.tagName.toLowerCase();
if (elem.outerHTML) return elem.outerHTML;
var attrs = $.map(elem.attributes, function(i) { return i.name+'="'+i.value+'"'; });
return "<"+name+(attrs.length > 0 ? " "+attrs.join(" ") : "")+">"+elem.innerHTML+"</"+name+">";
};
})(jQuery);

https://gist.github.com/1102076

关于javascript - 有没有更好的方法来获取 outerHtml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6804248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com