asp.net - 通过 jQuery 加载包含内联脚本的 HTML 内容

标签 asp.net jquery ajax scripting

背景

  • 我使用 Graffiti CMS 为本地慈善/服务组织运行 ASP.NET 网站。
  • 该组织的领导者希望开始集成第三方后端管理系统,将内容公开为完整的 HTML 页面。
  • 其中一个页面(官员列表)使用内联脚本加载图片或占位符(取决于是否有给定官员的图片)。
  • 我创建了一个服务器端代理,可以使用 jQuery 的 .load() 从这些页面加载内容。 AJAX 功能。
  • 我可以使用 iframe 很好地显示此内容,但这感觉真的很困惑,如果内容的大小发生变化,我可能需要更改 iframe 的大小以确保它全部显示(哎呀!)。<

问题

如果我创建一个<div>在涂鸦帖子中,并使用 $("#divid").load(url)要加载内容,HTML 内容可以正常加载,但内联脚本被删除,因此军官图像和占位符都不会显示。

问题

了解到问题的原因是 jQuery 几乎肯定会在将内联脚本加载到 DOM 之前尝试通过删除内联脚本来防止潜在的不良内容,有没有一种方法使用 jQuery 来获取此 HTML 并将其加载到我的 DOM 将保留脚本,但不会打开主要的安全漏洞?我确实信任加载内容的系统(如果这有影响的话)。

建议?我希望尽可能简单......任何太复杂的事情,我都愿意坚持使用 iframe。

提前致谢!

@devhammer

最佳答案

使用 document.write 时出现问题。如果您有能力修改源页面,您可以修改它们以使用innerHtml 技术。

为此,您需要更改如下内容:

<div id="testDiv">
  <script type="text/javascript">
    document.write("<img src='image1.jpg' alt='' />");
  </script>
</div>

对此:

<div id="testDiv">
<div>
<script type="text/javascript">
  document.getElementByid('testDiv').innerHTML = "<img src='image1.jpg' alt='' />";
</script>

关于asp.net - 通过 jQuery 加载包含内联脚本的 HTML 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1659202/

相关文章:

javascript - jquery从选定的组合框获取数据属性

c# - ASP.net Ajax 未知 Web 方法

c# - 如何先调用客户端脚本函数,然后调用服务器端按钮点击事件?

php - 将 href 链接转换为图像链接使用缩略图

JavaScript 无法在本地主机上运行

javascript - 在 Yii 中启用客户端验证和提交表单后添加了双记录

javascript - 澄清使用 AJAX 的 Javascript 中的闭包

javascript - 如果 jQuery 认为它正在接收 JSONP 请求,我该如何解释 JSON?

javascript - ajax POST 调用不同域上的 Web API

javascript - 如何使用 javascript 检查文本框是否放置在面板内?