我有一个iFrame,通过我控制的代理之一显示外部网页。但是这个代理在大多数情况下都不能正确处理javascript,外部页面会抛出javascript错误。 Javascript不需要工作,因为它不重要。
我该怎么做才能隐藏这些javascript错误?它们很烦人,我可能有多个iFrame指向不同的外部源。
答案 0 :(得分:1)
您的代理可以重写HTML吗?如果您甚至不关心HTML是否有效,则可以将<script
替换为<!--script
,将/script>
替换为/script-->
。并使任何事件处理程序属性无效将on[a-z]+=
替换为*onnull=
。
可以运行的唯一JavaScript是在Internet Explorer的CSS表达式中。
答案 1 :(得分:0)
我想只需使用代理来解析和替换所有脚本标记和事件。由于所有这些标记都具有常规模式,因此您可以使用正则表达式来消除所有脚本标记和所有javascript事件(如果不重要)。
正则表达式删除脚本:
<script.*?</script>
将删除脚本标记之间的所有字符,但您也应删除on x和javascript:地址。稍后会详细介绍。