2012-02-25 6 views
3

これでクリックパスにはこの音素生成器があります。これは訪問者ごとに固有のものです。基本的に、.jsファイルから取得した動的に生成された電話番号です。この#を表示するためにスクリプトが実行されます。私がする必要があるのは、自分のサイトやスクリプトからこの番号を取得し、それを隠しフォームフィールドの値として挿入することです(各#は広告キャンペーンに固有なので、またはバナーなどを介して)。私はフォームフィールドに値を提出する方法を知っていますが、私はどのような関数をJSファイルから呼び出すか、または何かを表示するdivからストリップする方法を理解できません。隠しフォームフィールドに値を渡す/データを解析する

自分のコード

//** 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> 

は#しかし、このすべてが再び#が表示されない、とに何かを渡すdoesntの

<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> 

であるDIV値= ""

そこに任意のアイデア? UPDATE

は、実際には...私は、これは事実に由来すると考え、私の値と何も見返りにvalue.called返すために、私は復帰を代わりに使用するdocument.writeの、以下の機能を作成し、このサードパーティ製のスクリプトであり、私はアクセスしていないので、変数名を変更しないでください。私はこの時点で最も簡単なことは、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> 

clickpathを取得することは無駄な試みだったので、これに関する助けがあれば素晴らしいと思います。私は文字通り彼らの "技術"を教えて "これは理論的にはできますが、私たちはあなたを助けません。" 。彼らが持っている素晴らしい技術チーム。あなたは、この種のことを助けるための何らかのAPIサポートがあると思います。

+0

ここで何か助けがあれば助かります!非常にイライラ。 – RezenX

答えて

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

+0

素晴らしいおかげで!私はこれに新しいと時には私は少しの方向が必要です。その意図したように働く! document.onload上のポインタもありがとう! – RezenX

関連する問題