[英]Unable to call function from external JavaScript
我有一個簡單的HTML頁面,該頁面調用JavaScript函數:
<!DOCTYPE html>
<html>
<script type="text/javascript" src="css/myscript.js"></script>
<head>
<link rel="stylesheet" href="css/style.css">
</head>
<body onload="javascript:hello()">
</body>
</html>
這是我的hello()
函數:
<script>
function hello() {
alert("load new content");
document.open();
document.write("<h1>Changed content!</h1>");
document.close();
}
</script>
將JavaScript塊直接粘貼到頁面中時,它可以工作。 但是,如果JavaScript包含在專用文件中,則無法找到hello()
。
使用開發人員工具,我可以看到JavaScript文件已成功加載。
如果您的js文件中包含這些腳本標簽,請擺脫它們。
2個問題,在腳本解析期間,文檔已經打開。 如果再次打開,所有內容都將被刪除,因此將其刪除(write已經是打開的調用)。 其次,請確保不要在load事件之后添加腳本,以便真正定義函數hello。 在這里,我將其添加到正文中(或者如果需要,可以使用defer。) 這是小提琴
<head>
<link rel="stylesheet" href="css/style.css">
</head>
<body onload="hello();">
</body>
function hello() {
alert("load new content");
//document.open();
document.write("<h1>Changed content!</h1>");
document.close();
}
myscript.js
的內容應為:
function hello() {
alert("load new content");
document.open();
document.write("<h1>Changed content!</h1>");
document.close();
}
僅當您的JavaScript位於HTML文件中時,才包括<script>
標記。 <script>
告訴瀏覽器,“嘿,我們不再解釋HTML。這是JavaScript。”
而且,正如Colin在評論中指出的那樣, myscript.js
可能不屬於您的css
文件夾。 包含您網站的所有JavaScript文件的文件夾的通用名稱是js
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.