Javascript 无法在js弹出窗口中嵌入对象

Javascript 无法在js弹出窗口中嵌入对象,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,我有以下代码: <object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' width='800' height='470' id='Gen5Core' align='middle'><param name='allowScrip

我有以下代码:

<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' width='800' height='470' id='Gen5Core' align='middle'><param name='allowScriptAccess' value='always'/><param name='allowFullScreen' value='true'/><param name='movie' value='http://h71016.www7.hp.com/html/interactive/_core/Gen5Core.swf?corePath=http://h71016.www7.hp.com/html/interactive/_core/&serverName=http://h71016.www7.hp.com/html/interactive/p1102w/'/><param name='quality' value='high'/><param name='bgcolor' value='#333333'/><embed src='http://h71016.www7.hp.com/html/interactive/_core/Gen5Core.swf?corePath=http://h71016.www7.hp.com/html/interactive/_core/&serverName=http://h71016.www7.hp.com/html/interactive/p1102w/' quality='high' bgcolor='#333333' width='800' height='470' name='Gen5Core' align='middle' allowScriptAccess='always' allowFullScreen='true' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer'></embed></object>
我有一个问题:

  • Chrome中,弹出窗口为空,因此嵌入的对象无法工作(但我通过Inspect看到代码已成功放入html源代码)

你能帮帮忙吗?

在窗口准备接受写入之前,Chrome正在启动其余的javascript。我现在没有太多时间在所有浏览器上测试它,但它在Chrome18和IE9上都能工作

基本上,我们只需使用固定的100毫秒延迟来设置超时,以便浏览器有时间准备好窗口

请注意,原始答案(相同的主体)添加了一个额外的检查文档的readyState,但readyState在不同浏览器之间并不一致(例如,Firefox 9的窗口状态为“未初始化”,直到您在页面上填充url或其他内容)

我对此进行了测试,它在IE8和IE9、Firefox 3.6.8和9、Chrome 17和18上运行良好

$(document).ready(function() {
    var termWin;

    function writeWindow() {
        termWin.document.write('<html><head><title>TITLE</title><body><div> <object classid=\'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\' codebase=\'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\' width=\'800\' height=\'470\' id=\'Gen5Core\' align=\'middle\'><param name=\'allowScriptAccess\' value=\'always\'/><param name=\'allowFullScreen\' value=\'true\'/><param name=\'movie\' value=\'http://h71016.www7.hp.com/html/interactive/_core/Gen5Core.swf?corePath=http://h71016.www7.hp.com/html/interactive/_core/&serverName=http://h71016.www7.hp.com/html/interactive/p1102w/\'/><param name=\'quality\' value=\'high\'/><param name=\'bgcolor\' value=\'#333333\'/><embed src=\'http://h71016.www7.hp.com/html/interactive/_core/Gen5Core.swf?corePath=http://h71016.www7.hp.com/html/interactive/_core/&serverName=http://h71016.www7.hp.com/html/interactive/p1102w/\' quality=\'high\' bgcolor=\'#333333\' width=\'800\' height=\'470\' name=\'Gen5Core\' align=\'middle\' allowScriptAccess=\'always\' allowFullScreen=\'true\' type=\'application/x-shockwave-flash\' pluginspage=\'http://www.macromedia.com/go/getflashplayer\'></embed></object> </div></body></html>');
        termWin.document.close();
        termWin.focus();
    }

    $('.newWindow').click(function(event) {
        termWin = window.open('', '', 'width=600,location=0,toolbar=0,resizable=1,height=500,width=840,menubar=0,scrollbars=1');
        setTimeout(writeWindow, 100)
    });
});
$(文档).ready(函数(){
var termWin;
函数writeWindow(){
termWin.document.write('TITLE');
termWin.document.close();
termWin.focus();
}
$('.newWindow')。单击(函数(事件){
termWin=window.open(“”,’宽度=600,位置=0,工具栏=0,可调整大小=1,高度=500,宽度=840,菜单栏=0,滚动条=1’);
设置超时(writeWindow,100)
});
});

在Firefox中似乎可以正常工作,但在Chrome中不行:在Chrome&IE中工作,但在Firefox中不行。我相信Firefox和Opera可能有不同的readyState文本。更糟糕的情况是,你添加了一些浏览器检测。谢谢,你有最新的Chrome吗?我刚刚用Chrome17.0.963测试了(您的JSFIDLE),但似乎不起作用……更新了一个解决方案的原始答案,该解决方案似乎可以在Firefox3.6.9、Firefox9、Chrome17、Chrome18、IE8和IE9上运行。我现在真的不想测试其他浏览器:)非常感谢!真是太棒了!
 <a href="#" class="newWindow">
            <img src="@Url.Content("~/Content/Images/icon_demo_black.gif")" />
        </a>
$(document).ready(function() {
    var termWin;

    function writeWindow() {
        termWin.document.write('<html><head><title>TITLE</title><body><div> <object classid=\'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\' codebase=\'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\' width=\'800\' height=\'470\' id=\'Gen5Core\' align=\'middle\'><param name=\'allowScriptAccess\' value=\'always\'/><param name=\'allowFullScreen\' value=\'true\'/><param name=\'movie\' value=\'http://h71016.www7.hp.com/html/interactive/_core/Gen5Core.swf?corePath=http://h71016.www7.hp.com/html/interactive/_core/&serverName=http://h71016.www7.hp.com/html/interactive/p1102w/\'/><param name=\'quality\' value=\'high\'/><param name=\'bgcolor\' value=\'#333333\'/><embed src=\'http://h71016.www7.hp.com/html/interactive/_core/Gen5Core.swf?corePath=http://h71016.www7.hp.com/html/interactive/_core/&serverName=http://h71016.www7.hp.com/html/interactive/p1102w/\' quality=\'high\' bgcolor=\'#333333\' width=\'800\' height=\'470\' name=\'Gen5Core\' align=\'middle\' allowScriptAccess=\'always\' allowFullScreen=\'true\' type=\'application/x-shockwave-flash\' pluginspage=\'http://www.macromedia.com/go/getflashplayer\'></embed></object> </div></body></html>');
        termWin.document.close();
        termWin.focus();
    }

    $('.newWindow').click(function(event) {
        termWin = window.open('', '', 'width=600,location=0,toolbar=0,resizable=1,height=500,width=840,menubar=0,scrollbars=1');
        setTimeout(writeWindow, 100)
    });
});