通过jQuery加载包含内联脚本的HTML内容
的背景
- 我使用Graffiti CMS为本地慈善/服务组织运行一个ASP.NET站点。
- 该组织的领导者希望开始集成第三方后端管理系统,该系统将内容公开为完整的HTML页面。
- 其中一个页面,即官员列表,使用内联脚本来加载图片或占位符(取决于是否有给定官员的图片)。
- 我已经创建了一个服务器端代理,可以使用jQuery的
.load()
AJAX函数从这些页面加载内容。 - 我可以使用iframe显示这些内容,但感觉非常糟糕,如果内容的大小发生变化,我可能需要更改iframe的大小以确保全部显示(blech!)。
问题
如果我在Graffitipost中创建
,并使用
$("#divid").load(url)
来加载内容,HTML内容加载正常,但内联脚本被剥离,因此$("#divid").load(url)
图像都没有也不显示占位符。
问题
了解问题的原因是jQuery几乎肯定会在我将其加载到我的DOM之前通过删除内联脚本来防止潜在的坏事,有没有办法使用jQuery来抓取这个HTML并将其加载到我的DOM中将保留脚本,但不打开主要安全漏洞? 我确实相信我正在加载内容的系统,如果这有所不同的话。
建议? 我希望尽可能简单地保持这个……任何事情都太复杂了,而且我也可以坚持使用iframe。
提前致谢!
@devhammer
对我不起作用……
警告框显示..但如果你用document.write
替换它, document.write
中没有任何内容......你有“开始结束”
希望这可以帮助!
使用document.write时出现问题。 如果您能够修改源页面,则可以修改它们以使用innerHtml技术。
要这样做,你会改变这样的事情:
对此:
尝试手动设置HTML,如下所示:
$.get(url, function(htmlText) { $('#divid').html(htmlText); });
我很确定这会执行脚本。