これは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
. 現在表示されているウィンドウ内のリンクをクリックすると、 hidden 内に新しいページが読み込まれ、ボタンをクリックして表示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 のリロードと Iframe SRC の変更に使用されるコード
document.getElementById('booth').contentWindow.location.reload(true);
document.getElementById('booth').src = 'http://www.WEBSITE.com'+ ajaxChatConfig.loginChannelName +'/index.html';
上記は、IEがそうするように言われたとしても、IFrame内に何かをロードすることを許可していないようです。