私は一般的にJavascriptにかなり慣れていないので、このサイトで主に見られるものから小さなスクリプトをまとめて、小さなiframeを取得して一連のリンクを循環させようとしました。ただし、ユーザーが iframe またはそのコンテンツのいずれかをクリックすると、循環を停止することも必要です。
ここに私がこれまでに持っているコードがあります。HTML ページには iframe が 1 つしかありません。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8">
<!--
var sites = [
"side/html5.html",
"side/silverlight.html",
"side/wordpress.html",
"side/mysql.html",
"side/php.html",
"side/css3.html"
];
var currentSite = sites.length;
var timerId;
var iframeDoc = $("iframe").contents().get(0);
$(document).ready(function ()
{
var $iframe = $("iframe").attr("src","side/html5.html");
timerId = setInterval(function()
{
(currentSite == 0) ? currentSite = sites.length - 1 : currentSite = currentSite -1;
$iframe.attr("src",sites[currentSite]);
}, 4000);
$(iframeDoc).bind('click', function()
{
clearInterval(timerId);
});
});
//-->
</script>
</head>
<body>
<sidebar>
<iframe name="sideframe" src="side/html5.html"></iframe>
</sidebar> ..etc..
助けてください。できるだけ早く Javascript を学ぼうとしていますが、私が見る限り、うまくいくはずですが、実際にはうまくいきません。
あなたが私に与えることができる助けをありがとう、それは本当に感謝しています.
編集:
さて、私は新しいスクリプトを手に入れました。これは主に Elias の作品に基づいていますが、どちらも機能しません。私はそれを Firebug に固定しました。timerCallback.currentSite の値が適切に更新されていると言っていますが、明示的にチェックする $iframe の src 値が見つかりません。私が知る限り、変数は適切に更新されていますが、iframe が適切に更新されていません。このコードで iframe を正しく呼び出し/設定していますか? また、リンクされたjqueryライブラリは私の目的に十分ですか? リンクするこれらすべてのライブラリについて少し迷っています...
<script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
<script type="text/javascript" charset="utf-8">
<!--
var sites =
[
"side/html5.html",
"side/silverlight.html",
"side/wordpress.html",
"side/mysql.html",
"side/php.html",
"side/css3.html"
];
var $iframe = $("iframe").attr("src","side/html5.html");
function timerCallback()
{
timerCallback.currentSite = (timerCallback.currentSite ? timerCallback.currentSite : sites.length) -1;
$iframe.attr("src",sites[timerCallback.currentSite]);
$($('iframe').contents().get('body')).ready(function()
{
$(this).unbind('click').bind('click',function()
{
var theWindow = (window.location !== window.parent.location ? window.parent : window);
theWindow.clearInterval(theWindow.timerId);
});
});
}
var timerId = setInterval(timerCallback, 4000);
//-->
</script>