2016-03-22 19 views
-2

このスクリプトを再起動するにはどのようなコードを記述する必要がありますか?私は、コードを使ってスクリプトを完全にリセット/更新して、新しい/更新された情報を処理できるようにします。たぶんそれを止めてもう一度やり直すのが最善の方法です。しかしどうですか?このスクリプトを再起動

<script type="text/javascript"> 
var _myplug = _myplug || {}; 
_myplug.key = '12e9u349u43098j8r940rjciocjo'; 
_myplug.renderTo = ''; 
window.myplug||(function(d) { 
    var s,c,o=myplug=function(){ o._.push(arguments)};o._=[]; 
    s=d.getElementsByTagName('script')[0];c=d.createElement('script'); 
    c.type='text/javascript';c.charset='utf-8';c.async=true; 
    c.src='js/loader.js?';s.parentNode.insertBefore(c,s); 
})(document); 
</script> 
+0

このスクリプトは別のスクリプト "loader.js"をロードしています - おそらく、loader.jsはすべての作業を行っていると思われます。スクリプトを作成して実行して、それを初期化する。このファイルは、スクリプトが明示的に再起動できる機能を持っていない限り、「再起動」できないオブジェクトや関数をメモリ上に作成します。 –

答えて

1

まあ、スクリプトに関する十分な情報を知らなくても、ここにスクリプトをリロードしてくださいだろうハック方法があります:

function reloadScript() { 
    with(document) { 
    var newscr = createElement('script'); 
    newscr.id = 'reloadMe'; 
    newscr.appendChild(createTextNode(getElementById('reloadMe').innerHTML)); 
    body.removeChild(getElementById('reloadMe')); 
    body.appendChild(newscr); 
    } 
} 

あなたのスクリプトタグのIDが必要になります:

<script type="text/javascript" id="reloadMe"> 

UPDATE:

上記方法ISN」あなたのコードはloader.jsという別のスクリプトタグをドキュメントに追加するので、コードを更新するのに十分です。

ここではあなたの状況のた​​めの特別なバージョンです:

<script type="text/javascript" id="notTheScriptYouWannaRefresh"> 
var _myplug = _myplug || {}; 
_myplug.key = '12e9u349u43098j8r940rjciocjo'; 
_myplug.renderTo = ''; 
window.myplug||(function(d) { 
    var s,c,o=myplug=function(){ o._.push(arguments)};o._=[]; 
    c=d.createElement('script'); 
    c.type='text/javascript';c.charset='utf-8'; 
    c.async=true;c.id='reloadMe'; //<-- CUSTOM ID SET! 
    c.src='js/loader.js?';d.body.appendChild(c); 
})(document); 

function reloadScript() { 
    with(document) { 
    var newscr = createElement('script'); 
    newscr.id = 'reloadMe'; 
    newscr.appendChild(createTextNode(getElementById('reloadMe').innerHTML)); 
    body.removeChild(getElementById('reloadMe')); 
    body.appendChild(newscr); 
    } 
} 

window.setTimeout(reloadScript, 10000); //Reload after 10 seconds 
</script> 

がこの問題を解決を願っています。

+0

残念ながら、私が探しているものではありません。スクリプトはリセットされない、または再起動されないため、これを引き起こす原因をさらに調査します。おそらく、loader.jsに関するあなたからのコメントが手掛かりです。私が見つけたら、ここに投稿します。コーディングは時々必要とするより難しいようです。ちょうどSTOPスクリプトとSTART!どのように簡単に.... – Cinzel

+0

'window.myplug ||'をwindow.myplug ||から削除する(function(d){' –

+0

)助けていただきありがとうございます。残念ながら、コードを変更しても何もしないようですあなたが提案したように。 – Cinzel

0

私はもっと何かを知っています。

@AaronGillionが提案したものと同じである可能性がある別の方法が見つかりました。トリガだけが異なります(x秒ごとに再起動します)。

これはメソッドです:

http://jsfiddle.net/mendesjuan/LPFYB/

私は私のスクリプトコードでscriptTag.innerTextを置き換えます。スクリプトが正常に開始されることがわかっているので、スクリプトが削除され、x秒ごとに再挿入されることも理解しています。これはスクリプトを更新しないので、スクリプトを古い状態で継続する別のものがロードされていることが証明されます。おそらくloader.jsかもしれません。 残念ながら私のJSの知識は限られています。私のコードからloader.jsを再起動するには? は、明確にするために、私はloader.js含めて、再び以下このトピックからのコードを貼り付けます。

<script type="text/javascript"> 
var _myplug = _myplug || {}; 
_myplug.key = '12e9u349u43098j8r940rjciocjo'; 
_myplug.renderTo = ''; 
window.myplug||(function(d) { 
    var s,c,o=myplug=function(){ o._.push(arguments)};o._=[]; 
    s=d.getElementsByTagName('script')[0];c=d.createElement('script'); 
    c.type='text/javascript';c.charset='utf-8';c.async=true; 
    c.src='js/loader.js?';s.parentNode.insertBefore(c,s); 
})(document); 
</script> 

質問loader.jsを再起動する方法です。

+0

'scriptTag.innerText'はFirefoxでは動作しません。 Mozillaは代わりに 'scriptTag.textContent'を使います。 //私の更新された答えをチェックし、私のコードをloader.jsの状況に合わせて作った! –

関連する問題