2012-02-25 35 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

相關問題