2017-02-22 8 views
-3

注文システムには、まったくアクセスできない埋め込み関数があります。便利なことに、スペルミスがあり、ユーザーが何かをクリックするとポップアップが表示され、その中に文法上の問題があります。javascript関数を新しい関数に置き換えます。

私はそのテキストを置き換えるか、すべてのコードが同じでもスペルが正しい新しい関数で置き換える方法はありますか?

これは私が編集する必要のある機能です。「あなたの選択」は「あなたの選択」ではありません。 他の編集をしたいかもしれないので、そのスペルミスを修正したい。

function showProof() 
{ 
    var blnSubmit = false; 
    var strHid=''; 
    var strSave=''; 

    if (aryTemplateChoices.length == 0) 
    { 
    blnSubmit = true; 
    } 
    else 
    { 
    for (var i=1; i<=aryTemplateChoices.length; i++) 
    { 
     strSave = aryTemplateChoices[i-1]; 
     if (strSave=='')strSave='0'; 
     if (document.getElementById('hidctrl'+ i))strHid = document.getElementById('hidctrl'+ i).value; 
     if (strHid=='')strHid='0'; 

     if ((strSave != '0') && (strHid != strSave)) 
     { 
     blnSubmit = true; 
     break; 
     } 

    } 
    } 

    if (blnSubmit) 
    { 
    if (confirm('Your selection has changed, do you want to save?')) 
    { 
     document.getElementById('subtype').value = 'proof'; 
     document.getElementById('prevclick').value = ''; 
     document.getElementById('frm1').submit(); 
    } 
    } 

    canAddToCart(); 
    //<!--WRITE--> 
    getQuantityPrice() 
    //<!--/WRITE--> 
    loadProof(); 

} 
+2

ちょうどあなたがそれを使用したい場所に近い範囲で(同じ名前と修正されたコードで)関数を再定義します。 –

+0

コードにアクセスできないのはなぜですか? –

+0

定義されている場所と参照/呼び出しの方法によって異なります。 –

答えて

0

本来の機能は限り、あなたはちょうど近くにあなたがしたい場所にスコープで(同じ名前で、コードを修正)関数を再定義して、そしてあなたがそれにアクセスする方法ですそれは本当に問題ではありませんこれを使って。

ここでは例です:

function foo(){ 
 
    console.log("ORIGINAL foo says hello."); 
 
} 
 

 
function foo(){ 
 
    console.log("NEW foo says hello."); 
 
} 
 

 
// The second declaration is in the same scope as the first, but it comes after the first 
 
// so it overwrites that declaration and the second one is the one that is used. 
 
foo();

+0

これは最後にこれを動作させ、答えのスコットとしてマークしました。私がそれを置くことができる場所を見つけ出して、コード内のオリジナルの後に現れるようにすることが、大きな障害となっていました。 –

関連する問題