ColdFusion 10仅在IE9中发生错误

时间:2014-08-14 19:35:29

标签: coldfusion internet-explorer-9 coldfusion-10

我的客户在从ColdFusion 8迁移到ColdFusion 10后遇到错误The 2 parameter of the Left function, which is now -1, must be a positive integer。该页面在Windows 31和Chrome 7上按预期执行。但是,此错误发生在IE9中,而不是IE7中。 IE9中是否有不同的安全设置禁止处理代码?

有问题的代码片段是:

    <!--- Populate the UserInfo struct --->
<cfloop INDEX="item" LIST="#COOKIE.MYELVIS_USERINFO#" DELIMITERS="&">
    <cfset delim = #FindOneOf("=",item)#>
    <cfif (len(item)-delim)>
        <cfset UserInfo[UCase(left(item,delim-1))] = right(item,len(item)-delim)>
    <cfelse>
        <cfset UserInfo[UCase(left(item,delim-1))] = "">
    </cfif>         
</cfloop>

当我在其他浏览器中工作时,我说它是代码错误,而不是IE9。有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:3)

也许有他清楚的饼干,他可能有一个来自cf 8的保留,也许两个版本编码不同。看起来,如果可能的话,其中一个值不包含=。

在审核您的代码后,我认为这就是您所需要的。

<cfloop INDEX="item" LIST="#COOKIE.MYELVIS_USERINFO#" DELIMITERS="&">
  <cfset delim = #FindOneOf("=",item)#>
  <cfif (delim) and (len(item)-delim)>
    <cfset UserInfo[UCase(left(item,delim-1))] = right(item,len(item)-delim)>
  <cfelse>
    <cfset UserInfo[UCase(item)] = "">
  </cfif>         
</cfloop>
相关问题