1

内部にiframeを含むjspがあります。iframe に別の jsp をロードしようとしています:

 scripts and links ...
<body>
<iframe src="/contextmenu">
</iframe>

<div style="float:left;">
    <div id="StudentTableContainer" style="width:70%;"></div>
</div>
</body>
</html>

ここにコンテキストメニューがあります:

 scripts and links ...
    <body>
    <div data-role="content">
        <ul data-role="listview" id="listView">
            <li><a href="index.html">Inbox <span class="ui-li-count">12</span></a></li>
            ...
        </ul>
    </div>
    </body>

アイデアは、最初の jsp にある javascript と、iframe 内のページにある javascript を分離することです。エラーが発生してページがクラッシュするため、JavaScript を 1 つのページ (iframe なし) にマージできません。残念ながら、iframe 内の JavaScript は機能しません。<head>決して呼び出しアラートのこのコード部分:

<script>
    jQuery(document).ready(function () {
        alert(1);
        $('#listView').listview();
    });
</script>

そして、そのような別のjsまたはcssファイルをロードできるかどうかわかりません:

 <script type="text/javascript"
            src="<c:url value="/resources/js/jquery.mobile-1.2.1/jquery.mobile-1.2.1.js"/>"></script>

私はWebとJavaScriptもかなり初めてなので、質問がばかげている場合は申し訳ありません。どんな助けにも感謝します。

4

1 に答える 1

1

この<script>タグは正しいですか?

<script type="text/javascript"
    src="<c:url value="/resources/js/jquery.mobile-1.2.1/jquery.mobile-1.2.1.js"/>"></script>

そのc:部分は、これが ColdFusion テンプレートまたはそのようなものであることを意味しますか?

いずれにせよ、これはブラウザが見るものではありません。このテンプレート コードが生成するものは何でもブラウザーが認識するものなので、それを確認する必要があります。ブラウザの通常の<script>タグは次のようになります。

<script src="/resources/js/jquery.mobile-1.2.1/jquery.mobile-1.2.1.js">
</script>

( は必要ありませんtype="text/javascript"。)

ブラウザーの開発者ツールに精通していますか? それらを使い始める時が来ました。Chrome でページを読み込み、開発者ツールを開きます (Windows では F12、他の OS では Ctrl+Shift+I であると思います。または、Chrome メニューで見つけることができます)。開発者ツールのコンソール パネルにエラー メッセージが表示される場合があります。(ツールを開いた後は、必ずページをリロードしてください。)

さらにデバッグするには、次のコードを変更します。

<script>
    jQuery(document).ready(function () {
        alert(1);
        $('#listView').listview();
    });
</script>

に:

<script>
    debugger;
    jQuery(document).ready(function () {
        debugger;
        $('#listView').listview();
    });
</script>

開発者ツールを開いた状態でページをリロードします。

debugger最初のステートメントで停止したら、マウスをjQueryコード内の名前の上に置きます。それはそれの定義を示していますか、それともそうであると言っていundefinedますか?これにより、jQuery をまったくロードしているかどうかがわかります。

debugger最初のステートメントにさえ到達しない場合<script>、何らかの理由でこれがまったく実行されていません。ただし、その場合、開発者ツールは何らかのエラー メッセージを表示するはずです。

これを行っている間に、時間をかけて開発者ツールに慣れてください。生産性が倍増することをお約束します。DevTools の概要を次に示します。

于 2013-07-03T19:52:03.500 に答える