2016-04-15 12 views
-2

今私は大きな脳のおならを持っています。私はこの機能を持っています:文字列と関数の同じ名前

function uplodeVirus(){ 
    console.log('working') 
    console.log('uplodeVirus') 
    var form = document.getElementsByTagName('form')[1] 
    console.log(form) 
    var select = form.children[0] 
    console.log(select) 
    for (x in select) { 
    var lN = select[x].innerHTML // var linkName 
    if (lN == "vspam 0.3 [OpenRelay-backdoor.vspam ] (0.003 Gb)"){ 
     value = select[x].value 
     select[x].setAttribute("selected", "selected"); 
     form.submit() 
     break 
    } 
    } 
} 

本当のウイルスではないことを心配しないでください!これは、スレーブ・ハックと呼ばれるゲームのためのボットである - 私は、関数を呼び出すとき、とにかく目的に

を学ぶために:私は、関数の外にコードを取ると行う場合

var ip = '2.2.2.2' 
var uplodeVirus = 'http://www.slavehack.com/index2.php?page=internet&var2=' + ip + '&var3=files&aktie=upload' 
var currentUrl = window.location.href 
console.log(currentUrl) 
console.log(uplodeVirus) 
if (currentUrl == uplodeVirus) { //Yes, I made sure that currentUrl = uplodeVirus 
    uplodeVirus() 
} 

何も起こらない...しかし、この:

if (currentUrl == uplodeVirus){ 
    console.log('working') 
    console.log('uplodeVirus') 
    var form = document.getElementsByTagName('form')[1] 
    console.log(form) 
    var select = form.children[0] 
    console.log(select) 
    for (x in select) { 
    var lN = select[x].innerHTML // var linkName 
    if (lN == "vspam 0.3 [OpenRelay-backdoor.vspam ] (0.003 Gb)"){ 
     value = select[x].value 
     select[x].setAttribute("selected", "selected"); 
     form.submit() 
     break 
    } 
    } 
} 

さて、私はオプションBと一緒に行くことができましたが、私は本当に何が間違っているのか把握したいと思います。

ありがとうございます!

+0

ブラウザでJavaScriptデバッガを使用してコードをステップ実行し、エラーが発生した場所を見つけることをお勧めします。 –

+2

'uplodeVirus'は同時に文字列と関数の両方になることはできません。 2つの用途のうちの1つを名前変更する必要があります。 –

+0

あなたはどんな機能も呼びません。変数に値を代入しています。 – EdSF

答えて

1

あなたはURL変数と同じ名前の関数の両方命名されていますuplodeVirus()を呼び出し、変数は関数を呼び出すしようとする前に、文字列を保持するように初期化されているのでuplodeVirus

("")()を呼び出すのと同じです。文字列は関数ではないので、意味をなさない。

いずれかの名前を変更してみてください。