我無法在xhtml文件中運行基本的javascript函數,如alert
等。請參閱下面的xhtml文件:無法從.xhtml文件擴展名運行JavaScript;適用於.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta content="text/html;charset=UTF-8" />
<title>My HTML</title>
</head>
<body>
<h1>MyHTML</h1>
<p id="mytext">Hello World! This is a test.</p>
<input type="button" value="Alert" onClick="displayAlert()" />
<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
<input type="button" value="Open Dialog" onClick="openAndroidDialog()" />
<input type="button" value="Add highlight" onClick="changeColor()" />
<script language="javascript">
function showAndroidToast(toast) {
JSInterface.showToast(toast);
}
function openAndroidDialog() {
JSInterface.openAndroidDialog();
}
function callFromActivity(msg) {
alert(msg);
var oldHTML = document.getElementById("mytext");
alert(oldHTML);
var newHTML = "<span style='color:#ff0000'>" + msg + "</span>";
alert(newHTML);
document.getElementById("mytext").innerHTML = newHTML;
}
function changeColor() {
var oldHTML = document.getElementById("mytext").innerHTML;
var newHTML = "<span style='color:#ff0000'>" + oldHTML + "</span>";
document.getElementById("mytext").innerHTML = newHTML;
}
function displayAlert() {
<![CDATA[
window.alert("I am here!");
]]>
}
</script>
</body>
</html>
在Chrome/Safari瀏覽器中呈現時,沒有任何功能(如ChangeColor等)可以使用。將相同的文件重命名爲*.html
會導致所有功能正常工作。我讀了很多材料,導致我:
1.嘗試CDATA
標記並將所有內容放入函數中。
2.將MIME類型更改爲text/html。
所有這一切都無濟於事。任何人都可以告訴我爲什麼會發生這種情況,以及我如何從xhtml運行javascript函數?
.html是xhtml的擴展。 – Lidor
如果你的Content-Type頭是正確的,那麼文件擴展名是沒有意義的,你對這個問題的假設是錯誤的。這可能意味着當你使用文件擴展名「.xhtml」時,你的Content-Type頭是不正確的。 – Brad
@Lidor:那就是.xhtml。 – BoltClock