AJAX ディープ リンク サイトがあります。基本的な構造は次のようなものです。
<html>
<head>
...
</head>
<body>
...
<!-- AJAX will change the content of this div tag -->
<div id="ajax">
...
</div>
...
</body>
</html>
したがって、ここでの考え方は、URL () のフラグメント値に応じて AJAX#query
が適切に<div id="ajax">
.
これが問題です。このことを考慮。ユーザーが最初にこのページ ( #home
) をロードし、次のページがロードされます:
<html>
<head>
...
</head>
<body>
...
<!-- AJAX will change the content of this div tag -->
<div id="ajax">
<!-- content of the home page -->
...
</div>
...
</body>
</html>
この後、ユーザーはページに移動します#query
。このページをロードするために、AJAX は <div id="ajax">
タグの innerHTML を変更します。のコンテンツに#query
オブジェクトが埋め込まれているとします (この例では、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>
これを実行しようとすると、次のスクリプトが実行されないため、ビデオが読み込まれません。
<script>
flowplayer("player", "flowplayer.swf", {
clip: "video.mp4"
});
</script>
この問題を解決するにはどうすればよいですか、または何が間違っていますか?
どんな助けでも大歓迎です。
編集進捗報告
ajax
私はこれを行うことでdiv タグの HTML コンテンツを交換していました:
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);
これにより Firefox の問題が解決され、<script>
get がトリガーされますが、Chrome と IE ではまだ機能しません。
何か案は?