iframe中的JavaScript不起作用

时间:2013-07-03 18:53:26

标签: javascript html iframe frame

我有一个带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>

这里是contextmenu:

 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(没有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>

我对网络和javascript也很陌生,如果问题很愚蠢,那就很抱歉。我会感激任何帮助。

1 个答案:

答案 0 :(得分:2)

<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,我认为在其他操作系统上为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>。但在这种情况下,开发人员工具应该向您显示某种错误消息。

在您这样做时,请花一些时间真正熟悉开发人员工具。我保证会增加你的工作效率。这是一个introduction to the DevTools