2014-01-19 20 views
1

我問這個問題的原因是因爲在我的一個頁面中,我鏈接了一個javascript腳本,然後當我嘗試在javascript文件中運行一個函數時,它不起作用。鏈接腳本時,它是否會自動運行?

這很奇怪,因爲當我從腳本文件中複製完全相同的代碼並將其放置在標記之間時,該函數可以正常工作。

這是我如何鏈接它:

<script src="../scripts/login.js" type="text/javascript"></script> 

這裏是它是如何引用:

<td><button type="button" onclick="login()">log in </button></td> 

這裏是如果你想看到它的JavaScript文件:

function login() 
{ 
var xmlhttp; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    username = encodeURICompenent(document.getElementById("username").value); 
    password = encodeURICompenent(document.getElementById("password").value); 
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","test.php",true); 
xmlhttp.send(); 
} 
+1

是否在'../scripts/login.js找到'login.js'? – suspectus

+0

看你的瀏覽器控制檯。 – SLaks

+0

狗屎,我需要改變test.php的鏈接哦,我應該把這個謝謝你們 – shakked

回答

0

如果您將外部JavaScript文件附加到您的文檔,並且它包含在寫入任何方法內未找到的代碼在函數聲明語法上。這些代碼會在瀏覽器解析JavaScript文件後立即執行。

Ex。

function CallMe() { 
    console.log("I'm going to execute once callMe method is invoke"); 
} 

console.log("I'm going to execute once browser parses the javascript file"); 

您的情況下的登錄方法不會執行,除非有觸發/調用您的按鈕的單擊事件的事件。