【发布时间】:2012-05-18 10:21:42
【问题描述】:
我想使用这个函数在 div 元素中加载我的页面内容:
function loadmypage(DIV, pageURL)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(DIV).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET", pageURL ,true);
xmlhttp.send();
}
但是,当我单击“框架”本身内的链接时,该功能不起作用。我猜目标元素与加载页面位于不同页面的原因 自己。
所以我的问题是:有没有办法让 div 元素在框架本身内加载整个页面时表现得像 iframe?
PS:出于安全原因,我不允许使用 iFrame,出于效率原因也不允许使用 jQuery。 主页中的链接正常加载目标,当我单击这些页面中的任何链接时出现问题。
<div id="nav" class="mmenu">
<ul type="none">
<li><a href= "javascript:loadmypage('viewMessages.php')">Messages</a></li>
<li><a href= "javascript:loadmypage('userHomepage.php')">My Conferences</a></li>
<li><a href= "javascript:loadmypage('availableConferences.php')">Conferences</a></li>
<li><a href= "javascript:loadmypage('incomingRequests.php')">Requests</a></li>
<li><a href= #>News</a></li>
<li><a href= #>Options</a></li>
</ul>
</div>
</fieldset>
<div id="collabsoft" class="collabsoft">
【问题讨论】:
-
PS里的这两个理由简直是一派胡言。
-
一旦你把 responseText 放在你的 div 里面,它就是同一个页面。
-
显示你点击的链接以及你用来设置点击事件的函数
-
@J.Bruni 当我点击 div 本身的链接时。
-
@bažmegakapa 他们不一定是他的理由;有时组织可能有相当武断和滞后的规则,例如不允许在 URL 中使用查询字符串(就像我以前的公司一样)。
标签: javascript ajax iframe html