alert
xhtml ファイル内からなどの基本的な JavaScript 関数を実行できません。以下の xhtml ファイルを参照してください。
<!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関数を実行する方法を誰か教えてもらえますか?