[英]'</div' injected in Classic ASP html response, page continues to load
所以,这很奇怪。
我们有一个2008 R2 server
和运行Classic ASP的 Win 7x64 dev
工作站。
站点中正好位于carat position 98301
,将</div
插入到源中。 请注意,它不是完全关闭的div( </div>
)标记。 只是</div
。
因此,由于它移动,基于修改页面的其他内容(用户权限,查询字符串值等),各种各样的事情都在中断。 但始终要精确地位于代码中的position 98301
。 并且始终仅在这一页上。
我以前从未见过,也不知道在哪里弄清楚它在做什么。 我们还有许多其他页面,其中包含成千上万个字符。 我们的页面也较短。 所有页面的所有IIS设置都是相同的,并包括4Mb response buffer
, static and dynamic compression
启用了static and dynamic compression
(我对这两种方式进行了切换,无需更改)。 我们也有3个source control branches
并且这一切都发生在仅这一页上。
我们使用的是2个Win7x64 dev workstations
,1个Win2008R2 local test server
和1个Win2008R2 prod server
,它们的作用完全相同。
我到处移动了一些代码,剪切了函数,在其中添加了新代码来循环Hello World
,无论我做什么,它总是只在精确的carat position 98301
插入</div
。
我想不出其他要测试的东西。 欢迎所有建议! 谢谢!
原来,这是页面上htmlEncode()
和htmlDecode()
的组合,并且仅在Chrome(当前为v39.x)中存在问题。 Firefox和IE运作良好。 在我们的页面上,大约有600行脚本块,并且htmlEncode()
和htmlDecode()
接近该块的顶部。 通过将它们移动到</script>
标记之前,一切正常,并且</div
没有被注入。 虽然我不是该页面的作者,但我可以看到htmlEncode()
和htmlDecode()
函数是从此处获得的: 当从输入字段读取属性时,HTML编码丢失
另外,我们同时加载了Prototype(1.7.1)和jQuery(1.11.x),并以var $j = jQuery.noConflict();
加载了jQuery var $j = jQuery.noConflict();
在原型之前。 更改return $('<div/>')....
以return $j('<div/>')....
甚至return jQuery('<div/>')....
绝对没有影响情况。
我仍然不知道为什么会这样,但是通过将函数移到script标记的底部已经解决了(现在,无论如何)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.