2012-02-25 41 views
3

确定所以clickpath有这个数字生成器,它是唯一的每个访问者或类似的东西。基本上,它是一个动态生成的电话号码,从.js文件中提取。一个脚本被运行来显示这个#。我需要做的是从我的网站或脚本中获取这个数字,然后将其作为隐藏表单字段的值插入(每个#对于广告活动都是唯一的,因此id知道他们是否有机地来到网站,或通过横幅等)。我知道如何将值提交到表单字段,但我无法弄清楚从他们的JS文件调用什么函数或如何从显示在其中的东西中剥离#。传递一个值到一个隐藏的表单字段/解析数据

他们的代码

//** COPYRIGHT 2005-2006 - WhosCalling, Inc. ** 

//!!Do not change variable names!! 

var CPMACCOUNTID='XXXXXX'; 
var CPMClientDir='XXXXXXXX'; 
var CPMPhoneNumber='XXXXXXXX'; 

var CPMUrl 
if(location.protocol == 'https:'){ 
CPMUrl='https://analyticssl.clickpathmedia.com'; 
} else { 
CPMUrl='http://analytics.clickpathmedia.com'; 
} 

function RenderPhoneText(num, pat) { 
document.write(GetOfficePhoneText(num, pat)); 
}; 

function RenderPhoneImage(num, dir) { 
var CPMClientWebserver=document.domain; // Change this variable to your webserver  address ex: 'www.example.com' 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Sep1.gif" alt="-">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Number' + num.substr(0,1) + '.gif">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Number' + num.substr(1,1) + '.gif">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Number' + num.substr(2,1) + '.gif">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Sep2.gif">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Number' + num.substr(3,1) + '.gif">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Number' + num.substr(4,1) + '.gif">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Number' + num.substr(5,1) + '.gif">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Sep3.gif">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Number' + num.substr(6,1) + '.gif">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Number' + num.substr(7,1) + '.gif">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Number' + num.substr(8,1) + '.gif">'); 
    document.write('<img src="http://' + CPMClientWebserver + '/' + dir + '/Number' + num.substr(9,1) + '.gif">'); 
}; 

function GetOfficePhoneText(num, pat) { 
var strResult = ""; 
    var intDigit = 0; 

    for(var i=0;i<pat.length;++i){ 
    if (pat.charAt(i) == "N") { 
    strResult = strResult + num.charAt(intDigit); 
    intDigit = intDigit + 1; 
} 
else { 
    strResult = strResult + pat.charAt(i); 
} 
} 

if (intDigit < 10) { 
strResult = strResult + num.substr(intDigit); 
    } 

    return strResult; 
}; 

function DisplayPhoneText(pat) { 
//For backward compatibility 
RenderPhoneText(CPMPhoneNumber,pat); 
}; 

function DisplayPhoneImage(dir) { 
//For backward compatibility 
RenderPhoneImage(CPMPhoneNumber,dir); 
}; 

function GetPhoneText(pat) { 
//For flash compatibility 
return GetOfficePhoneText(CPMPhoneNumber,pat); 
}; 

function GetPhoneTextOffice(num, pat) { 
//For flash compatibility 
return GetOfficePhoneText(num,pat); 
}; 

document.write('<script type="text/javascript" LANGUAGE="javascript" src="'); 
document.write(CPMUrl + '/JS/' + CPMClientDir + '/clickpathremote.js'); 
document.write('"><\/sc' + 'ript>'); 

document.write('<script type="text/javascript" language="javascript" src="'); 
document.write('https://clicktotalk.whoscalling.com/makeClickToTalk.js'); 
document.write('"><\/sc' + 'ript>'); 

function clickToTalk(PhoneNumber) 
{ 
makeClickToTalk('https://clicktotalk.whoscalling.com/', PhoneNumber,  CPGetSessionValue()); 
window.setTimeout('CPMLogTraffic(\'104\')', 2000); 
} 

我的代码

<script type="text/javascript"> 
document.getElementById('clickphone').value = DisplayPhoneText("NNN.NNN.NNNN"); 
</script> 
<input type="hidden" value="" id="clickphone" name="clickphone"/></input> 

div的,#是

<div id="rightSide"> 
<script language="Javascript">DisplayPhoneText("NNN.NNN.NNNN"); 
</script>866.458.9533<noscript>866.303.5765</noscript> 
<a href="" onclick="javascript:clickToTalk('8666180269'); return false;"><img src="images/click-to-call-button.png" border="0" alt="Click To Call"></a></div> 

然而,这一切确实是再次显示#和犯规传递什么值=“”

有什么想法吗?

UPDATE

创建以下的功能,而不是文件撰写我用回实际上会返回value.called在返回到自己的价值并没有什么......我觉得从事实上,这源于此是一个即时通讯的第三方脚本,他们正在拉动我无法访问的外部脚本,因此“不要更改变量名称”评论。我认为最简单的事情就是解析DIV中的电话号码文本。但我不知道该怎么做。

function RenderPhoneTextReturn(num, pat) { 
    return(GetOfficePhoneText(num, pat)); 
}; 


function DisplayPhoneTextReturn(pat) { 
    //For backward compatibility 
    RenderPhoneTextReturn(CPMPhoneNumber,pat); 
}; 

<script type="text/javascript"> 
document.onload=function() { 
document.getElementById('clickphone').value = DisplayPhoneTextReturn("NNN.NNN.NNNN"); 
} 
</script> 
<input type="hidden" value="" id="clickphone" name="clickphone"/></input> 

任何帮助,这将是美好的,因为获得点击路径“支持”是徒劳的尝试。我从字面上有他们的“技术”告诉我“理论上这可以完成,但我们不会/不能帮助你。” 。伟大的技术团队,他们有。你认为他们会有某种API支持来帮助解决这类问题。

+0

任何帮助在这里将不胜感激!非常沮丧。 – RezenX 2012-02-25 05:43:15

回答

1

它看起来像你想要的数据是在一个名为CPMPhoneNumber的全局变量。如果你想未格式化这个数字,那么你很可能只是侥幸:

document.getElementById('clickphone').value = CPMPhoneNumber; 

如果你想这个数字的格式版本,那么它看起来像他们为你提供了一个名为GetPhoneText(功能)接收你想要的格式。你可以这样称呼它:

document.getElementById('clickphone').value = GetPhoneText('NNN.NNN.NNNN'); 

我也建议不要使用document.onload的原因有很多。 (例如,页面上的另一个脚本也可能使用document.onload,并且脚本或他们的脚本可能会阻止另一个脚本运行。)

如果碰巧使用jQuery,那么您可以调用代码这个:

<script type="text/javascript"> 
    $(function() { 
     $("#clickphone").val(GetPhoneText('NNN.NNN.NNNN')); 
    }); 
</script> 

或者,如果你不使用jQuery,那么至少你可以避免使用文档。通过将您的脚本标记直接放置在隐藏字段的下方来确保它不会被调用,直到字段添加到DOM之后:

<input type="hidden" value="" id="clickphone" name="clickphone"/> 
<script type="text/javascript"> 
    document.getElementById('clickphone').value = GetPhoneText('NNN.NNN.NNNN'); 
</script> 
+0

谢谢生病了试试看。并让你知道! – RezenX 2012-02-25 21:17:57

+0

非常感谢!即时通讯新的,有时我只需要一个小方向。它按预期工作!还要感谢document.onload上的指针! – RezenX 2012-02-25 21:20:07

相关问题