gpt4 book ai didi

javascript - 通过 HTMLParser 验证 Google 优化器 javascript 代码

转载 作者:太空宇宙 更新时间:2023-11-03 19:39:11 25 4
gpt4 key购买 nike

我正在尝试将下面的 Google 网站优化器 JavaScript 代码包含在 Zope3 页面模板中。它用于 A/B 测试。

但是,模板 html 解析器(我认为是标准的 Python HTMLParser 模块)会抛出以下错误:

raise PTRuntimeError(str(self._v_errors))
- Warning: Compilation failed
- Warning: <class 'HTMLParser.HTMLParseError'>: bad end tag: u"</sc'+'ript>", at line 45, column 44
PTRuntimeError: ['Compilation failed', '<class \'HTMLParser.HTMLParseError\'>: bad end tag: u"</sc\'+\'ript>", at line 45, column 44']

据我所知,我有两个选择:

  • 重写代码,使其通过(我的 JS-foo 很弱,不知道从哪里开始)。

  • 使 HTMLParser 忽略该代码。我尝试过 CDATA 标签但没有成功。我还尝试过将 js 放入外部文件并链接到它,但这似乎会破坏优化器功能。

可疑代码:

<!-- Google Website Optimizer Control Script -->
<script>
<![CDATA[
function utmx_section(){}function utmx(){}
(function(){var k='1010538027',d=document,l=d.location,c=d.cookie;function f(n){
if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);return c.substring(i+n.
length+1,j<0?c.length:j)}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;
d.write('<sc'+'ript src="'+
'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com'
+'/siteopt.js?v=1&utmxkey='+k+'&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='
+new Date().valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
'" type="text/javascript" charset="utf-8"></sc'+'ript>')})();
]]>
</script><script>utmx("url",'A/B');</script>
<!-- End of Google Website Optimizer Control Script -->

最佳答案

考虑到解析器的弱点,您可以尝试分解它试图解释为标签的 CDATA 部分,例如你现在有</sc'+'ript>'尝试<'+'/sc'+'ript>'等等( + 在 JS 中进行字符串连接,就像在 Python 中一样,因此它会再次将您以这种方式分解的标签重新组合在一起,就像在原始版本中已经分解的标签一样)。

如果持续出现解析错误,请丢失 CDATA 并每隔 < 进行更改进入&lt; ,每>进入&gt; -- 不确定 JS 是否会处理这个问题,但值得一试...祝你好运!

关于javascript - 通过 HTMLParser 验证 Google 优化器 javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1506496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com