問題タブ [onload]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
browser - 適切なDoctypeを見つけることができず、クァークズモードでのみ機能するようです
何らかの理由で、私のWebページはDoctypeがなくても正常に機能しているように見えますが、完全に指定すると機能しません。
私はさまざまな異なるテンプレートを試しましたが、成功しませんでした。つまり、コードバリデーターが私のコードを気に入らなかったり、機能しなかったりします。
「私が逃げる」のは下の一番上の行だけですが、それでも詳細を指定することはできません。つまり、通常のDoctype宣言の始まりにすぎません。
このページは、DropdownStackoverflowの質問の結果です。
また(そしてこれが問題を引き起こしているかもしれないのでタイプを指定したい理由)ページはIEでのみ完全に機能します。Chromeでは最初のドロップダウンのみが読み込まれ、Firefoxでは読み込まれません。
上記があまり明確ではないことを感謝しますが、コードは非常に短いので、正しい方向に向けられれば、自分でそれを完了したり、他の問題をよりよく説明したりできることを願っています。
javascript - iFrame src変更イベントの検出?
iframe のコンテンツを制御できないと仮定すると、親ページを介して src の変更を検出できる方法はありますか? ある種のオンロードでしょうか?
私の最後の手段は、iframe src が以前と同じであるかどうかを 1 秒間隔でテストすることですが、このハッキーなソリューションを実行すると最悪です。
役立つ場合は、jQuery ライブラリを使用しています。
jsf - ページの読み込み時にJSFマネージドBeanアクションを呼び出す
ページが読み込まれたときにJSFマネージドBeanアクションを実行する方法はありますか?
それが関係しているなら、私は現在JSF1.2を使用しています。
dom - DOM が読み込まれる前に window.onload がトリガーされるようです (JavaScript)
window.onload
とイベントに問題がありdocument.onload
ます。私が読んだすべてのことは、DOMがすべてのリソースで完全にロードされるまでこれらがトリガーされないことを示しています.これは私には起こっていないようです:
Chrome 4.1.249.1036 (41514) と IE 8.0.7600.16385 で次の簡単なページを試してみましたが、どちらも「失敗しました!」というメッセージが表示され、myParagraph
ロードされていないことが示されました (そのため、DOM が不完全に見えます)。
外部の .js ファイルで、これよりも複雑なスクリプトを使用していますが、これは問題を示しています。window.onload
タイマーを 0.5 秒実行するように設定することで動作させることができますdoThis()
が、これは洗練されていない解決策のwindow.onload
ように思えます。別の解決策は、DOM がロードされているかどうかをチェックするタイマーを設定することです。そうでない場合は、0.5 秒後に自分自身を呼び出します (DOM がロードされるまでチェックし続けます) が、これは私には複雑すぎるようです。
使用するより適切なイベントはありますか?
javascript - scrollTo はページの一番上までスクロールします
次のJavascriptコードがあります。
ページが読み込まれると、正しい位置にスクロールされます。リンクをクリックして関数を実行すると、ページがページの上部にスクロールします。
これを修正するにはどうすればよいですか?
data-binding - ViewModelの構築中または構築後にMVVMがデータをロードしますか?
私の一般的な質問は、タイトルが示すように、ViewModelの構築中、または後でLoadedイベント処理を介してデータをロードするのが最善ですか?
答えは、いくつかのLoadedイベント処理を介した構築後だと思いますが、それがViewModelとViewの間でどのように最もきれいに調整されているのか疑問に思います。
私の状況と私が解決しようとしている特定の問題についての詳細は次のとおりです。
UnityforDIだけでなくMVVMLightフレームワークも使用しています。ネストされたビューがいくつかあり、それぞれが対応するViewModelにバインドされています。ViewModelsは、LaurentBugnionがMVVMLightに組み込んだViewModelLocatorのアイデアを介して、各ビューのルートコントロールDataContextにバインドされます。これにより、静的リソースを介してViewModelを検索し、依存性注入フレームワーク(この場合はUnity)を介してViewModelの有効期間を制御できます。また、Expression Blendで、ViewModelとそれらをバインドする方法に関するすべてを確認できます。
とにかく、ViewModelのObservableCollectionにComboBoxデータバインドされた親ビューがあります。ComboBoxのSelectedItemも、ViewModelのプロパティに(双方向で)バインドされます。ComboBoxの選択が変更されると、これは他のビューとサブビューの更新をトリガーします。現在、MVVMLightにあるメッセージングシステムを介してこれを達成しています。これはすべてうまく機能しており、ComboBoxでさまざまなアイテムを選択すると期待どおりに機能します。
ただし、ViewModelは、一連の初期化メソッド呼び出しを介して、構築時にデータを取得しています。これは、ComboBoxの最初のSelectedItemが何であるかを制御したい場合にのみ問題になるようです。MVVM Lightのメッセージングシステムを使用して、現在、ViewModelのSelectedItemプロパティのセッターが更新をブロードキャストし、他の関心のあるViewModelがコンストラクターのメッセージに登録するように設定しています。現在、構築時にViewModelを介してSelectedItemを設定しようとしているようですが、サブViewModelの構築と登録はまだ許可されていません。
ViewModel内のSelectedItemのデータロードと初期設定を調整するための最もクリーンな方法は何でしょうか?私は本当に、ビューのコードビハインドを合理的な範囲でできるだけ少なくすることに固執したいと思っています。ViewModelがデータのロードを確認し、データのロードを続行してセットアップフェーズを完了する方法が必要だと思います。
よろしくお願いします。
javascript - ページオンロードイベントの直後にページのscrollTopを取得するにはどうすればよいですか?
私はページの取得方法を知ってscrollTop
います、私はこの単純なJS関数(コードをコピーしたもの)を使用します:
これは機能し、私の問題は次のとおりです。ページのonloadイベントに追加しようとしました
ページの読み込み時にゼロになりますが(これは理にかなっています)、問題は、ページをスクロールしてからスクロールバーに触れずにページを再読み込みしてもゼロになることです。
ブラウザが行うようです:
- ページを読み込む
- 私に電話します
GetScrolledTop()
(明らかにゼロを示しています) - 次に、ページを前の場所にスクロールします。
scolledTop
ステップ3の後に取得する方法を知っていますか?scrolledTop
ブラウザがページをスクロールした後に取得する方法を意味しますか?
(たぶんタイマーを使わずに)
javascript - Firefox3.6.xがonloadイベントを起動しません
Firefox 3.6.2に問題があります(3.5.xは問題なく動作します)。
これはコードです:
Firefox 3.6.2は、私のonloadイベントを起動しなくなりました、何かアイデアはありますか?
javascript - ブックマークレットを使用してパッケージを追跡する
メール内のパッケージを追跡するブックマークレットを作成しようとしています。最初に追跡ページが開いているかどうかを確認し、開いていない場合は新しいタブで開き、フォームの値を追跡番号に設定します。最後に、フォームを送信します。私がこれまでにできなかったことは、ブックマークレットが新しいタブを開く場合にフォームの値を設定することです。
ここに私が持っているものがあります:
javascript: (function(){
var trackingNumber = "/*tracking number*
/";
var a = document.forms.trackingForm;
if (' http://fedex.com/Tracking ' == document.location) {
trackingForm.trackNbrs.value = trackingNumber;
document.forms.trackingForm.submit();
}
else {
window.open(' http://fedex.com/Tracking ');
this.window.onload = function(){
//これが問題のようです
trackingForm.trackNbrs.value = trackingNumber;
onload(document.forms.trackingForm.submit());
}
}
)();
何か案は?