2013-07-03 5 views
1

У меня есть jsp с iframe внутри него. Я пытаюсь загрузить другой JSP в IFRAME:JavaScript внутри iframe не работает

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> 

Идея заключается в том, чтобы отделить JavaScript, который находится в первом Jsp и JavaScript, который находится в страницы внутри iframe. Я не могу объединить javascript на одной странице (без iframe), потому что он вызывает ошибки и сбои страниц. Но, к сожалению, javascript внутри iframe просто не работает. Этот фрагмент кода в <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 тоже, извините, если вопрос глупо. Буду признателен за любую помощь.

ответ

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 и откройте Developer Tools (F12 в Windows, и я думаю, что это 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.

Смежные вопросы