这是我目前正在使用的javascript
代码:
function toggleContainer(containerID, hideContainerIDs) {
if(hideContainerIDs) {
for(var i=0; i<hideContainerIDs.length; i++) {
ajaxChat.showHide(hideContainerIDs[i], 'none');
}
}
ajaxChat.showHide(containerID);
if(typeof arguments.callee.styleProperty == 'undefined') {
if(typeof isIElt7 != 'undefined') {
arguments.callee.styleProperty = 'marginRight';
} else {
arguments.callee.styleProperty = 'right';
}
}
var containerWidth = document.getElementById(containerID).offsetWidth;
if(containerWidth) {
document.getElementById('chatList').style[arguments.callee.styleProperty] = (containerWidth+28)+'px';
document.getElementById('chatBooth').style[arguments.callee.styleProperty] = (containerWidth+28)+'px';
} else {
document.getElementById('chatList').style[arguments.callee.styleProperty] = '20px';
document.getElementById('chatBooth').style[arguments.callee.styleProperty] = '20px';
}
}
DIV和IFrame代码:
<div id="chatBooth" style="display:none; overflow: hidden;">
<iframe style="overflow:hidden;height:100%;width:100%" height="100%" width="100%" frameborder="0" scrolling="no" name="booth" id="booth" src="about:blank">
</iframe>
</div>
我已经尝试了我能想到的一切,这段代码在每个浏览器中都非常有用,但IE
。它正在做的是当您单击窗口内当前可见的链接时,它会在隐藏的IFrame
内加载新页面,您可以通过单击按钮使所述IFrame
可见。以下是显示和隐藏隐藏DIV
和IFrame
。
<input type="button" value="[LANG]toggleChat[/LANG]" title="[LANG]toggleTitleChat[/LANG]" alt="[LANG]toggleChat[/LANG]" onclick="ajaxChat.showHide('chatBooth', null);"/>
以下是Link
的代码,用于更改IFrame
中应该位于IE
的每个浏览器中的内容!
alert(this.channelName);
document.getElementById('booth').contentWindow.location.reload(true);
document.getElementById('booth').src = 'http://www.cnn.com';
以上代码适用于IE
以外的所有内容。我完全失去了。我花了好几个小时搜寻Google
,似乎无法找到解决方案,甚至找不到导致问题的原因。任何帮助将不胜感激。
这是请求的showHide代码:
showHide: function(id, styleDisplay, displayInline) {
var node = document.getElementById(id);
if(node) {
if(styleDisplay) {
node.style.display = styleDisplay;
} else {
if(node.style.display == 'none') {
node.style.display = (displayInline ? 'inline' : 'block');
} else {
node.style.display = 'none';
}
}
}
}
用于重新加载iframe和更改Iframes SRC的代码
document.getElementById('booth').contentWindow.location.reload(true);
document.getElementById('booth').src = 'http://www.WEBSITE.com'+ ajaxChatConfig.loginChannelName +'/index.html';
以上似乎不允许IE在IFrame中加载任何内容,即使它被告知这样做。
答案 0 :(得分:0)
我复制了你提供的代码,并通过简单地更改你的一个函数让它工作。但是因为我没有你的代码的实际工作副本我不能确定这对你有用...
我改变了showHide函数decleration ...
showHide: function(id, styleDisplay, displayInline) {
到此......
function showHide(id, styleDisplay, displayInline) {
我使用的HTML:
<body>
<div id="chatBooth" style="display:none; overflow: hidden;width:100%;">
<iframe style="overflow:hidden;height:100%;width:90%;border:1px solid red;" scrolling="no" name="booth" id="booth" src="http://www.ebay.com"></iframe>
</div>
<input type="button" value="toggleChat" title="toggleTitleChat" onclick="showHide('chatBooth', null);"/>
</body>
更新::
您可以使用此函数替换document.getElementById('booth')。contentWindow.location.reload(true);
function loadContent(passedInURL){
if(!passedInURL){
passedInURL = "http://www.ebay.com";
}
var theIFrame = "<iframe style='overflow:hidden;height:200px;width:90%;border:1px solid red;' scrolling='no' name='booth' id='booth' src='";
theIFrame += passedInURL + "'></iframe>";
document.getElementById('chatBooth').innerHTML= theIFrame;
}
并将此按钮添加到页面..
<input type="button" value="reLoad" title="reLoadFrame" onclick="loadContent();"/>