MVC4局部视图jquery navigator.userAgent问题

时间:2014-03-14 19:55:02

标签: javascript jquery internet-explorer asp.net-mvc-4 razor

有一个问题,即javascript使用布局呈现并运行第一页:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="X-UA-Compatible" content="chrome=1, IE=edge">
    <meta charset="utf-8" />
    @Styles.Render("~/Content/less")        
    <title>Title</title>
</head>
<body>
    <div class="skin-wrap">
        <header>
            @Html.Partial("_Header")
        </header>
        <section class="detail">
            <section class="menu-col">
                @{ Html.RenderAction("Index", "Menu"); }
            </section>
            <section class="detail-col">
                @RenderBody()
            </section>
        </section>
    </div>
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/jqueryui")
    @Scripts.Render("~/bundles/jqueryval")
    @Scripts.Render("~/Scripts/site.js")
    @RenderSection("scripts", required: false)
 </body>
</html>

但是在加载菜单项并使用相同布局的不同视图呈现后,只要jqueryui(版本1.10.xx)或site.js调用

,就会有多个权限被拒绝的错误
 navigator.userAgent

我已经看到所有引用Internet Explorer注册表设置的答案,但设置都设置为建议的内容,并不是用户必须更改的可行解决方案。

我认为我们只是错误地渲染脚本。

中的错误

SCRIPT70: Permission denied 
site.js, line 3 character 1234

这个js也会抛出错误

$(document).on('ready', function () {
     alert(window.navigator.userAgent);
});

第一次加载视图时它工作正常,第二次它会抛出权限被拒绝错误。

4 个答案:

答案 0 :(得分:0)

你可以使用

@Scripts.Render("~/Scripts/site.js") 

确保它正确呈现......

答案 1 :(得分:0)

对于一个bundle,你需要使用scripts.render来处理单个文件,你需要一个脚本标记。尝试将site.js引用更改为

<script type="text/javascript" src="@Url.Content( "~/Scripts/site.js" )"></script>

答案 2 :(得分:0)

  

加载菜单项后,使用相同布局的其他视图呈现,只要jqueryui(版本1.10.xx)或site.js调用

,就会出现多个权限被拒绝的错误

这只是一个推测,但你已经彻底检查了导致这个脚本失败的视图。或许仔细观察可能会发现为什么会发生这种情况。也许您在该视图中使用了一些其他脚本,这可能会导致此脚本导致此类错误。

答案 3 :(得分:0)

我认为警报被阻止了。试试这个。

$(document).on('ready', function () { console.log(window.navigator.userAgent); });
相关问题