2016-06-27 1 views
2

Firefoxで新しいタブを開くときに読み込むカスタムホームページがあります。 ロード時にキャレットの位置を変更したいが、これをタブロードで処理するイベントが見つからない。新しいタブの読み込み時にHTML DOMイベントを使用するにはどうすればよいですか?

window.onpageshowwindow.onloadイベントは、新しいタブイベントからページが読み込まれたときには機能しませんが、リフレッシュなどで正常に動作します。要素でのイベントを投げる は、次のような、いずれかの効果がありません:

<body onload="blah()"> 

このようにページがロード私のカーソルの再配置機能を呼び出す方法はありますか? 編集:ここではsetCursorコードです

<script type="text/javascript"> 
window.onload = ready; 
function ready() 
{ 
    setCursor(document.getElementById('sbar'), 0, 0) 
}; 
</script> 


<script type="text/javascript"> 
function setCursor(el, st, end) 
{ 
    if (el.setSelectionRange) { 
     el.focus(); 
     el.setSelectionRange(st, end); 
    } else { 
     if (el.createTextRange) { 
      range = el.createTextRange(); 
      range.collapse(true); 
      range.moveEnd('character', end); 
      range.moveStart('character', st); 
      range.select(); 
     } 
    } 
}; 
</script> 
+0

私は、Webブラウザのウィンドウ負荷と新しいタブ負荷の間には差がありません怖いです。あなたのサイトからの読み込みのみを主張すれば、おそらくHTTPヘッダー 'referer'のようなものが役に立ちます。しかし、 'referer'はjavascriptではなくサーバ側にあります。 – rufushuang

答えて

1

あなたが(タブの負荷)、ページの読み込みをフックしたい場合は、いくつかのオプションがあります。

window.onload = ready; 
function ready() 
{ 
    alert("Hi !"); 
}; 
:最初のオプションは onloadイベントを使用している

デモ:http://jsfiddle.net/vy79v39k/

2番目のオプションは、y体の非常に最後に、私たちのjavascript:

<body> 
    ... 
    <script type="text/javascript"> 
    ready(); 
    </script> 
</body> 

第三の選択肢は、私に投票jQueryを使用しています!):

jQuery(function($) { 
    //Your code here 
}); 

または:

jQuery(document).ready(function($) { 
    //Your code here 
}); 
+0

ありがとう!残念ながら、私はまだ問題があります。アラートダイアログは新しいタブでうまく動作しますが、カーソル再配置スクリプトはまだロード時に実行されません。興味深いことに、同じonload関数呼び出しでアラートを含めるとうまくいきます。何が起こっているのでしょうか?コードは本文の終わりにあり、setCursor関数はスクリプトタグでラップされています。 jQueryで異なる結果を得られませんでした。再度、感謝します! +1、しかし新しいメンバー= noshow。 – redteamwynns

+0

'setCursor'関数コードを追加してください。 –

+0

私はちょうどコードをアップロードしました。ありがとうございました。 – redteamwynns

関連する問題