Javascript 如何在AJAX深度链接站点中为嵌入式对象运行脚本

Javascript 如何在AJAX深度链接站点中为嵌入式对象运行脚本,javascript,html,ajax,embedding,deep-linking,Javascript,Html,Ajax,Embedding,Deep Linking,我有一个AJAX深度链接站点。基本结构如下: <html> <head> ... </head> <body> ... <!-- AJAX will change the content of this div tag --> <div id="ajax"> ... </div>

我有一个AJAX深度链接站点。基本结构如下:

<html>
    <head>
        ...
    </head>
    <body>
        ...
        <!-- AJAX will change the content of this div tag -->
        <div id="ajax">
            ...
        </div>
        ...
    </body>
</html>
之后,用户进入页面
#查询
。为了加载此页面,AJAX将更改
标记的innerHTML。假设
#查询的内容有一个嵌入式对象(在本例中,是使用FlowPlayer的嵌入式视频)。在完成AJAX之后,代码将如下所示

<html>
    <head>
        ...
    </head>
    <body>
        ...
        <!-- AJAX will change the content of this div tag -->
        <div id="ajax">
            <!-- Flowplayer JavaScript component -->
            <script src="flowplayer-3.2.4.min.js"></script>
            <!-- The player container -->
            <div id="player" style="width:720px;height:480px;"></div>
            <!-- Player installation -->
            <script>
                flowplayer("player", "flowplayer.swf", {
                    clip: "video.mp4"
                });
            </script>
        </div>
        ...
    </body>
</html>
现在我把它改成这样:

var element = document.createElement("div");
element.setAttribute("id", "ajax");
element.innerHTML = xmlhttprequest.responseText;
toswap = document.getElementById("ajax");
toswap.parentNode.replaceChild(element, toswap);
这解决了Firefox中的问题,因此触发了
,但在Chrome和IE中仍然不起作用


有什么想法吗?

浏览器不会执行作为文本添加到DOM中的JavaScript。请看以下问题:


您的ajax代码看起来是什么样的-获取内容并将DOM片段添加到页面的代码?您是否使用JavaScript库来帮助处理ajax内容?我使用SWFAddress进行深度链接。然后,我使用XMLHttpRequest获取要检索的文件的内容,然后使用
document.getElementById(“ajax”).innerHTML=XMLHttpRequest.responseText
交换html内容。
<script>
    flowplayer("player", "flowplayer.swf", {
        clip: "video.mp4"
    });
</script>
document.getElementById("ajax").innerHTML = xmlhttprequest.responseText;
var element = document.createElement("div");
element.setAttribute("id", "ajax");
element.innerHTML = xmlhttprequest.responseText;
toswap = document.getElementById("ajax");
toswap.parentNode.replaceChild(element, toswap);