3

HTML ページから JavaScript 関数を呼び出したいのですが、イベントに依存したくありません。関数は、多くの Web ページから使用したいので、別の .js ファイルにあります。変数も渡しています。私はこれを試しました:

HTML:

<script type="text/javascript" src="fp_footer2.js">
footerFunction(1_basic_web_page_with_links, 1bwpwl.html);
</script>    

fp_footer2.js の関数:

function footerFunction(path, file) {

document.write("<a href=" + path + "/" + file + " target='_blank'>Link to the original web page for this assignment.</a>");

return;
}

(また、fp_footer2.js ファイル参照をヘッダーに配置しようとしましたが、役に立ちませんでした。この例のように「インライン」に配置できるかどうかはわかりません。そうでない場合は、お知らせください。

PS: HTML 自体で単純な 'a href=""' を使用してこれを実行できることはわかっています。私自身の好奇心のために、これが機能するかどうかを確認したかったのです。

4

4 に答える 4

7

<script>にがある場合src、外部スクリプトがインライン スクリプトを置き換えます。

2 つのスクリプト要素を使用する必要があります。

関数に渡す文字列も、未定義の変数 (または未定義の変数のプロパティ) ではなく、実際の文字列である必要があります。文字列リテラルは引用符で囲む必要があります。

<script src="fp_footer2.js"></script>
<script>
    footerFunction("1_basic_web_page_with_links", "1bwpwl.html");
</script>    
于 2012-11-05T17:29:34.053 に答える
0

ページのレンダリングにJavaScript が実行されます。よくある間違いは、ページのさらに下の要素にアクセスしようとするスクリプトを実行することです。スクリプトの実行時に要素が存在しないため、これは失敗します。

したがって、インクルードは、DOM コンテンツが利用可能になる<head>に実行されます。

スクリプトが DOM 要素 (フッターなど) の存在に依存している場合は、DOM 要素のにスクリプト インクルードを配置してみてください。より良い解決策は、document readyイベント ( $(document).ready()jQuery 内) を使用することです。またはwindow.onload

documen readyとの違いはwindow onloaddocument readyDOM がレンダリングされたときに起動することです。そのため、すべての初期 DOM 要素が利用可能になります。画像window onloadなど、すべてのリソースがロードされた後に発生します。window onloadこれらの画像で何かをしている場合に便利です。通常document readyは正しいものです。

于 2012-11-05T17:28:29.707 に答える
0

質問を誤解しているかもしれませんが、次のようなことができるはずです。

<script type="text/javascript" src="fp_footer2.js"></script>
<script type="text/javascript">
   footerFunction(1_basic_web_page_with_links, 1bwpwl.html);
</script>
于 2012-11-05T17:29:04.453 に答える
-1

document.ready から呼び出してみましたか?

<script type="text/javascript">
  $(document).ready(function() {
    footerFunction(1_basic_web_page_with_links, 1bwpwl.html);
  });
</script> 
于 2012-11-05T17:29:39.647 に答える