gpt4 book ai didi

javascript - jQuery:如何使用 .load 将整个 DOM 替换为另一个 HTML

转载 作者:行者123 更新时间:2023-11-30 17:38:54 25 4
gpt4 key购买 nike

我有一个问题。我们正在做一个强制门户。

转到任何站点,例如 www.php.net然后在 Chrome 的控制台中,使用这个:

$("html").load( "https://www.ccc.co.il/Suspend.aspx" );

您会注意到,DOM 已被替换,但不完全是它应有的样子:加载网页的包装元素(例如标题、正文)丢失!

这当然会导致注入(inject)页面出现问题。

如何替换整个初始 DOM?请不要向我建议使用链接或正常重定向。这些是限制,我需要替换整个 DOM 树。

谢谢!

最佳答案

这基本上是浏览器的一项功能。

这是 jQuery 文档中关于 .load() 的一个片段:

jQuery uses the browser's .innerHTML property to parse the retrieved document and insert it into the current document. During this process, browsers often filter elements from the document such as <html>, <title>, or <head> elements. As a result, the elements retrieved by .load() may not be exactly the same as if the document were retrieved directly by the browser.

虽然我根本不推荐你的建议,但我会尝试回答你的问题:

使用服务器端语言(例如 PHP),将文档作为已解析的 json 返回:

{
"head": [head string],
"body": [body string]
}

然后您的 JavaScript 可以单独替换每个元素。您需要从 .load() 切换到更可配置的东西,比如 .ajax()

关于javascript - jQuery:如何使用 .load 将整个 DOM 替换为另一个 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21463148/

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