我倾向于使用image solution described by 24Ways来使用ajax和脚本。
但是,ajax结果不受我的控制,我需要一个regexp来转义引号('和“),因为脚本将包含在onload属性中。
到目前为止,这是我的工作:
clean_txt = clean_txt.replace(
/<script[^>]*>([\n\s\S]+?)<\/script>/img,
"<img src='1px.gif?d=$1' alt='' onload='new Function(\"$1\")();' />"
);
有没有人有最终的正则表达式,例如逃避1美元的报价?
答案 0 :(得分:0)
用正则表达式解析html会破坏你的灵魂。
我真的建议使用更简单的东西:
clean_txt.replace("'","\\'").replace('"', '\\"');
当然,这会将每个'
替换为\'
,将"
替换为\"
。如果您不想这样做,请阅读有关XML parsing in Javascript的更多信息。
答案 1 :(得分:0)
事实证明它可以通过转义onload函数的包装引号来解决。
clean_txt = clean_txt.replace(/<script[^>]*>([\n\s\S]+?)<\/script>/img,
"<img src='1px.gif?d=$1' alt='' onload=\'$1\;\' />");
有点丑陋和奇怪,但我可以忍受。通过这样做,浏览器似乎自己解决了这个问题。
我在Opera 10.6,Firefox 3.6,Safari 5和Chrome 7中进行了测试。