在手风琴div中的iframe中加载的外部页面内加载内联脚本

时间:2014-01-16 06:09:44

标签: javascript jquery iframe jquery-ui-accordion

我正在使用jQuery Accordion。

在手风琴中我试图在iframe中加载一个外部页面,这是在accordion div中。 页面已加载,但内联脚本不执行,只有html内容在iframe中呈现。

但是,如果我尝试使用jQuery标签,它可以正常工作。

以下是手风琴的代码:

$(function(){
     var accordion = $("#accordion").accordion();      

     $("#newSection").on('click',function(){
        var iDiv = $('<div id="div' + counter + '"</div>'),
        frame = $('<iframe id="frame" src="/Common/NewPage"></iframe>'),
        h3 = $("<h3>New Section</h3>");

        iDiv.append(frame);
        accordion.append(h3 );
        accordion.append(iDiv);       
        counter += 1;
        accordion.accordion("refresh");        
        accordion.accordion( "option", "active", -1);
     });
});

以下是要在框架中加载的新页面的代码

<script src="<%= Url.Content("~/Scripts/modernizr-2.5.3.js")%>"></script>
<script src="<%= Url.Content("~/Scripts/jquery-1.9.1.js")%>"></script>
<script src="<%= Url.Content("~/Scripts/jquery-ui.js")%>"></script> 

<!doctype html>   
   <html>
      <head runat="server">
         <title></title>
      </head>

      <script>  //this section is not executing
        $(document).on('ready', function () {       
          $.getScript("../Scripts/lookup.js");
          $.getScript("../Scripts/page.js");          
       });   
     </script>

    <body>

      //body elements

    </body>  
</html>

加载页面时不执行脚本部分,但使用jQuery选项卡,它正常工作。

有什么问题?请帮忙解决这个问题。

1 个答案:

答案 0 :(得分:1)

您必须在iframe中包含jquery。

<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

好的,然后检查你的路径,如果它是正确的 -

$.getScript("~/Scripts/lookup.js");
$.getScript("~/Scripts/page.js"); 

如果这也不起作用,请创建一个Inspect元素来查找错误。