1

我正在使用 ASP.NET MVC。我有一个视图,可以在一个部分中加载部分视图的内容。

问题是局部视图中有一些脚本引用。因此,当我在主页中加载该部分视图的内容时,脚本标签会被删除以保护视图免受脚本注入攻击。

我尝试了不同的方法来过滤部分页面内容中的脚本标签并分别加载主题,但我没有成功。

例如,我尝试过滤脚本标签并将它们附加到主页的头部,如下所示:

 var scripts = $(content).filter('script'); 
 $(scripts).each(function() {
 $('head').append($(this));

我还尝试使用 $.getscript 加载这些脚本。该函数可以很好地执行,但它们不会出现在 chrome 开发人员工具的页面资源中。而且我不能在这些脚本中使用函数。

我怎样才能做到这一点?

4

1 回答 1

1

您可以将脚本的所有引用移动到主视图,也可以使用 $.ajax "dataType as script" 动态加载脚本:

http://docs.jquery.com/Specifying_the_Data_Type_for_AJAX_Requests

$.ajax({
  dataType : 'script',
  url : 'http://example.com',
  success : function() {
  console.log(a);
  }
});
于 2013-04-24T09:22:13.347 回答