私は一般的にJavascriptの新機能を備えており、このサイトでほとんど見つかったものから小さなスクリプトをまとめて小さなiframeを取得しようとしていますそれはすばらしいことです。しかし、ユーザーがiframeやその内容をクリックしたときにサイクリングを止めたいと思っています。Javascript - JQuery - clearInterval/setInterval - 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を学ぶしようとしていますが、私の知る限り、それは動作するはずですが、それは本当にない、助けてください。
ご協力いただきありがとうございます。本当に感謝しています。
EDIT:
さて、私はほとんどエリアスの仕事のオフに基づいて、新しいスクリプト今持っているが、それはどちらか動作しません。私はFirebugにそれを固定して、それを明示的にチェックする$ iframeのsrc値を見つけることができませんが、timerCallback.currentSiteの値が正しく更新されていると言っています。私が知る限り、変数を適切に更新しています。iframeを正しく更新していないだけです。私はこのコードでiframeを正しく呼び出す/設定していますか?また、私の目的のために十分なjqueryライブラリにリンクされていますか?私はこれがためのiFrameのヘッダを取得することができ、このため
var iframeDoc = $("iframe").contents().get(0);
のコードが動作していないと思う...
<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>
また、ユーザーがiframeにマウスを乗せたときに一時停止するのはどうですか? –
'$( 'iframe')'ビットは機能しません。ページのiframeの数に応じて1以上の配列が返されます。申し訳ありませんが、擬似コードです。 '$( 'iframe')[0]'を使ってみるか、iFrameにidをつけて '$( '#iFrameId')' –
を使ってみてください。 '$( 'iframe')[0]は未定義です'をエラーとして返します(他の場合も同様です)。完全に: 'var $ iframe = $( 'iframe')[0] .attr(" src "、" side/html5.html ");' - これをオンラインにして、実際に見てみましょう。編集:それはhttp://www.gandcdesign.co.uk/を参照してください。 –