使用coldfusion将特定的URL插入到javascript函数中

时间:2014-12-13 21:50:38

标签: javascript jquery coldfusion

在这里,我试图做一种奇怪的事情,我不确定这里最好的是什么,但现在是:

我有来自cfhttp的外部页面。在那个页面中,我有一个辅助函数,并且排序函数调用自身并附加实际的url,因此它正在破坏:

我正在尝试的是找出该页面本身的URL并将其附加到url值,我不确定此时,我能否做到这一点,但我正在努力,我需要你的帮助人员

这是我正在尝试的代码:

<cfset case1 = find('thisUrl',cfhttp.filecontent)>
    <cfdump var="#case1#">
    <cfif case1 NEQ 0>
        <cfset regeneratelink = insert('<cfoutput>#address#</cfoutput>','thisUrl',case1)>
    </cfif> 

对于tis,我收到错误:

The third parameter (AtPosition) of the function Insert(SubString, InString, AtPosition), which is now equal to 13048, must be less than or equal to the length of the second parameter (String), which is now equal to thisUrl and has a length of 7

如果以上我在coldfusion中所做的事情可以在jquery中完成,我是开放的,只是想让外部排序功能工作......

2 个答案:

答案 0 :(得分:2)

您编写的代码尝试根据字符串cfhttp.filecontent中的位置插入#Address#。这两个字符串(显然)不一样 - 因此在一个字符串中找到的URL与另一个字符串不相关。

您可能要做的是修改cfhttp调用检索到的HTML的结果内容,并将thisurl替换为#address#。如果是这种情况,您可以直接替换它:

<cfset newHTML = replaceNocase(cfhttp.filecontent,'thisURL',Address)/>

注意 - 您不需要函数内部的引号和井号。保持清洁。

与此同时,我不确定我在最后的比赛中是否清楚。返回的HTML中的Javascript显然不会在服务器上运行吗?你为什么要再改变它?您是否将结果输出到用户的页面?

答案 1 :(得分:1)

(我在所有这些中假设&#39; thisurl&#39;是一个真实的网址,你只是给了我们一些&#39; thisurl&#39;)&gt;

首先,你不能在字符串中使用标签,所以这个

<cfset regeneratelink = insert('<cfoutput>#address#</cfoutput>','thisUrl',case1)>

应该是这个

<cfset regeneratelink = insert('#address#','thisUrl',case1)>

但即便如此

<cfset regeneratelink = insert(address,'thisUrl',case1)>

直接来自wiki docs,使用Insert函数的格式是这个

Insert(substring, string, position)

因此,当您搜索此URL的cfhttp.filecontent时,您将在13,048位找到它。

然后您尝试将地址插入字符串thisURL作为位置13,048,并且它的长度只有7。

所以看起来你真的想要使用..

<cfset regeneratelink = insert(address, cfhttp.filecontent, case1)>

但是这实际上会将子字符串插入到第一个字符

的字符串中
<cfset regeneratelink = insert(address, cfhttp.filecontent, case1+len('thisurl'))>

但是,如果你正在做所有的事情,你可以使用替换

<cfif find('thisUrl',cfhttp.filecontent)>
  <cfset regeneratelink = Replace(cfhttp.filecontent,'thisUrl','thisurl' & address,"ONE")>
<cfelse>
  <!--- 'thisURL' was not found, do something else? --->
</cfif>

它仅替换第一次出现。