少し問題が発生し、少し掘り下げましたが、決定的な答え/修正を思い付くのに苦労しています。
基本的に、私はいくつかのJavaScript(サードパーティによって作成されたもの)を持っています. コードは単一のページ (つまり、マスターなし) ではうまく機能しますが、マスター内のコンテンツ ページに効果を適用しようとすると、機能しません。
つまり、メインのスクリプト参照を含むマスター ページがあります。すべてのページでスクリプトが使用されますが、スクリプトに渡されるパラメーターはコンテンツ ページによって異なります。
マスター ページ スクリプト リファレンス
<script src="scripts.js" language="javascript" type="text/javascript" />
シングルページ
<script>
MakePretty("elementID");
</script>
ご覧のとおり、各ページに参照が必要です (したがってマスターにある) が、「MakePretty」する実際の要素はコンテンツに応じて変化します。
コンテンツページ
現在、コンテンツ ページには要素がないため<head>
、次のコードを使用してマスター ページ<head>
要素に追加しています。
HtmlGenericControl ctl = new HtmlGenericControl("script");
ctl.Attributes.Add("language", "javascript");
ctl.InnerHtml = @"MakePretty(""elementID"")";
Master.Page.Header.Controls.Add(ctl);
さて、これはうまくいきません。ただし、のような単純なものに置き換えるとalert("HI!")
、すべて正常に動作します。したがって、コードは正常に追加されています。実行内容によっては、常に実行されるとは限りません..
さて、掘り下げたところ、コンテンツページのLoad
イベントがマスターページの前に発生することがわかりました。
これがばかげた質問である場合はご容赦ください。ただし、特にマスター ページのシナリオでは、JavaScript を使用するのはまだ比較的慣れていません。
マスター ページで参照されている JavaScript コードをコンテンツ ページで呼び出すにはどうすればよいですか?
この人たちのあらゆる/すべての助けに感謝します, あなたは本当にこの仕事の問題で私を助けてくれるでしょう.
ノート:
RegisterStartupScript
などは、どのレベルでも機能しないようです..- コントロール ID は、MasterPage 環境でも適切に設定されており、期待どおりにレンダリングされています。
これのいずれかが不明確な場合はお詫びします。私は本当に疲れているので、必要に応じて、言い直し/説明が必要な場合はコメントしてください。