时间:2014-12-17 00:27:22

标签: asp-classic iis-7.5

所以,这很奇怪。

我们有2008 R2 serverWin 7x64 dev工作站运行经典ASP

网站中的一个页面,正好carat position 98301</div正在插入到源中。请注意,它是完全关闭div(</div>)标记。只需</div

因此,基于修改页面的其他内容(用户权限,查询字符串值等),各种各样的东西都在破碎,因为它会四处移动。但始终在代码中的position 98301处。并且始终只在这一页上。

我以前从未见过这个,也不知道在哪里弄清楚这是做什么的。我们有很多其他页面,有数十万个字符都很好。我们也有较短的页面。所有页面的所有IIS设置都相同,并且包括4Mb response bufferstatic and dynamic compression两个启用(我在没有更改的情况下以两种方式进行了设置)。我们还有3个source control branches,所有这些都发生在这一页上,仅在这一页上。

我们正在使用2 Win7x64 dev workstations,1 Win2008R2 local test server和1 Win2008R2 prod server,他们都做同样的事情。

我已经移动了一些代码,删除了函数,在那里添加了新代码来循环Hello World,无论我做什么,它总是只在</div插入carat position 98301 }}

我想不出别的东西要测试。欢迎所有建议!谢谢!

1 个答案:

答案 0 :(得分:0)

原来是htmlEncode()htmlDecode()在页面上的组合,只是Chrome中的一个问题(目前是v39.x)。 Firefox和IE运行良好。在我们的页面上,我们有大约600行脚本块,htmlEncode()htmlDecode()靠近块的顶部。通过将它们移动到</script>标记之前,一切正常并且</div未被注入。虽然我不是该页面的作者,但我可以看到htmlEncode()htmlDecode()函数来自此处:HTML-encoding lost when attribute read from input field

此外,我们已经加载了Prototype(1.7.1)和jQuery(1.11.x),并且在Prototype之前将jQuery加载为var $j = jQuery.noConflict();。将return $('<div/>')....更改为return $j('<div/>')....甚至return jQuery('<div/>')....对情况完全没有影响。

我仍然不知道为什么会发生这种情况,但是已经解决了(现在,无论如何)将函数移动到脚本标记的底部。