Asp.net - Javascript不适用于包含MVC视图的iframe

时间:2015-09-22 16:54:23

标签: asp.net asp.net-mvc iframe qlikview

我创建了一个视图,在iframe中显示“qlikview”文档。当从控制器调用上述视图时,iframe会阻止任何javascript执行。如果我删除iframe js工作正常。

iframe工作正常,但不是。这是什么原因?

感谢。

我的观点:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<div>
    <iframe id="qlikFrame" src="@ViewBag.IframeLink" style="width:100%; height:768px" frameborder="0" scrolling="no" />
</div>

_layout:

 $(document).ready(function() {

   alert("you clicked the paragraph");
 });
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>@ViewBag.Title - My ASP.NET Application</title>
  @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr")

</head>

<body>
  <div class="navbar navbar-inverse navbar-fixed-top">
    <div class="container">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        @Html.ActionLink("Home", "Index", "Home", null, new { @class = "navbar-brand" })
      </div>
      <div class="navbar-collapse collapse">
        <ul class="nav navbar-nav">
          <li>@Html.ActionLink("Home", "Index", "Home")</li>
          @if (@Request.IsAuthenticated) {
          <li class="dropdown">
            <a href="#" id="dropdown-item" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
                                Dashboards
                                <span class="caret"></span>
                            </a>
            <ul class="dropdown-menu">
              <li>@Html.ActionLink("SD", "Document", "Dashboard", new { Id = SD" }, null)</li>
              } @if (Request.IsAuthenticated && User.IsInRole("Admin")) {
              <li>@Html.ActionLink("RolesAdmin", "Index", "RolesAdmin")</li>
              <li>@Html.ActionLink("UsersAdmin", "Index", "UsersAdmin")</li>
              }
            </ul>
            @Html.Partial("_LoginPartial")
      </div>
    </div>
  </div>

  <div class="container body-content">
    @RenderBody()
    <hr />
  </div>

  @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false)

</body>
</html>

1 个答案:

答案 0 :(得分:0)

这是因为vs2015或MVC的奇怪行为,不确定是哪一个。

问题在于iframe闭包标签:

如果我写<iframe></iframe> Js有效,但如果我写<iframe /> Js不起作用。

在vwd2010的webform项目中,我使用了后一种语法,iframe和Js工作没有任何问题。 如果有人遇到这种不端行为,上面可能是解决方案。