クライアントサイドXSLTを頻繁に使用するWebサイトがありますが、その中にはJavaScriptが含まれています。このサイトはIEでしか動作しませんが、クロスブラウザーにしようとしています。 XSL文書は、XML島として読み込まれますが、私はそれが代わりにjQueryのを使用するように変更されました:クライアントサイドのXSLT(XSLにはJSLeryがロードされているときにXSLにjavascriptが含まれています)
function loadIndividualXML(name, src) {
var request = {
url: src,
dataType: "xml",
async: false
};
window[name]=$.ajax(request).responseXML;
}
これではJavaScriptが含まれていないXSLで正常に動作しますが、ないものに失敗しました。変換コードは次のとおりです。
var xmlDomXML = new ActiveXObject("Msxml2.DOMDocument");
xmlDomXML.async = false;
xmlDomXML.load(XMLdata);
var xmlDomResult = new ActiveXObject("Msxml2.DOMDocument");
// xmlDomXSL already loaded with function above
xmlDomXML.transformNodeToObject(xmlDomXSL, xmlDomResult);
エラーは次のとおりです。
のMicrosoft JScriptのランタイムエラー: オブジェクトが ライン= 1を必要なMicrosoft JScriptのランタイムエラー、COL = 0(ラインはスクリプトの先頭からのオフセットされましたブロック)。 プロパティまたはメソッド呼び出しからエラーが返されました。
XSLの先頭には、以下のようになります。クロスブラウザの変換のための名前空間として
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:script language="JavaScript"><![CDATA[
var totalRows = 0;
var rowCount = 0;
var columnsDesired = 3;