※ ChatGPTを利用し、要約された質問です(原文:xsl内での<script>タグの書き方)
xsl内での<script>タグの書き方
このQ&Aのポイント
xsl内での<script>タグの書き方について説明します。
xsl内に<script>タグを記述する際、IEとFireFoxで異なる動作が発生する場合があります。
エスケープの問題により、IEとFireFoxで異なる書き方をする必要があります。
すいません。もうひとつ質問させてください。
以下のように、xsl内に<script>タグを書こうと思っています。しかし、
<script type="text/javascript"><xsl:comment><![CDATA[
var v = 1;
if (v < 2) {alert(v);}
]]></xsl:comment>
</script>
と書くと、IEではalertが動きますが、FireFoxではalert出ません。<xsl:comment>を削除して、
<script type="text/javascript"><![CDATA[
var v = 1;
if (v < 2) {alert(v);}
]]>
</script>
と書くと、今度はFireFoxでは動作しますが、IEで動作しません。
ブラウザは、IE7とFireFox2.0.0.5です。おそらくエスケープの問題かなと思っていますが、どうすればいいでしょうか?
====== [sample.xml]
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="b.xsl" type="text/xsl"?>
<sample>
<smp>サンプル</smp>
</sample>
====== [b.xsl]
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet
version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="html"
encoding="UTF-8"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD XHTML 1.1//EN"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
media-type="text/html"
/>
<xsl:template match="/">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>サンプル</title>
<script type="text/javascript">
<xsl:comment><![CDATA[
var v = 1;
if (v < 2) {alert(v);}
]]></xsl:comment>
</script>
</head>
<body>サンプル</body>
</html>
</xsl:template>
</xsl:stylesheet>
お礼
おくれてすいません。ありがとうございます。