Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Xsl transformToDocument在chrome浏览器中不起作用,但在firefox中起作用_Javascript_Java_Xml_Xslt_Dom - Fatal编程技术网

Javascript Xsl transformToDocument在chrome浏览器中不起作用,但在firefox中起作用

Javascript Xsl transformToDocument在chrome浏览器中不起作用,但在firefox中起作用,javascript,java,xml,xslt,dom,Javascript,Java,Xml,Xslt,Dom,我通过调用URL来获取xsl,并在下面的代码snippent中解析我正在使用的xml var xslt = getXSLTemplate(xslUri, params, xmlDoc); if (!xslt) { xslt = createXSLTemplateGeneric(xslUri, params, xmlDoc); if (xslt) { putXSLTemplate(xslUri, xslt); }

我通过调用URL来获取xsl,并在下面的代码snippent中解析我正在使用的xml

var xslt = getXSLTemplate(xslUri, params, xmlDoc);
    if (!xslt) {
        xslt = createXSLTemplateGeneric(xslUri, params, xmlDoc);
        if (xslt) {
            putXSLTemplate(xslUri, xslt);
        }
    }
    if (xslt) {
        xslt.clearParameters();
        var paramName = params[0];
        var paramValue = params[1];
        var result = "";
        for (var paramIdx = 0; paramIdx < paramName.length; paramIdx++) {
            xslt
                    .setParameter("", paramName[paramIdx],
                            paramValue[paramIdx]);
        }
        var transformDoc = xslt.transformToDocument(xmlDoc);
        var xmlSerializer = new XMLSerializer();

        if (transformDoc.firstChild != null) {
            var nodes = transformDoc.lastChild.childNodes;
            for (var i = 0; nodes[i]; ++i) {
                result += xmlSerializer.serializeToString(nodes[i]);
            }
            result = transformDoc.lastChild.xml;
        }
        return result;
    }
var xslt=getXSLTemplate(xslUri、params、xmlDoc);
if(!xslt){
xslt=createXSLTemplateGeneric(xslUri、params、xmlDoc);
如果(xslt){
putXSLTemplate(xslUri,xslt);
}
}
如果(xslt){
clearParameters();
var paramName=params[0];
var paramValue=params[1];
var结果=”;
对于(var paramIdx=0;paramIdx
但这段代码在firefox中有效,而在chrome中不起作用。 请让我知道我在解析文档时犯了什么错误,或者如果上面的描述不足以进行分析,请让我知道

我在chrome中得到的结果如下

<div xmlns="http://www.w3.org/1999/xhtml" id="alertMessages" style="width:400px;"></div>

在firefox中,我得到了正确的结果

<table xmlns=\"http://www.w3.org/1999/xhtml\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" class=\"panelContentTbl\" style=\"margin-left:14px; margin-top:14px;\"><tbody><tr><td valign=\"top\"><script id=\"doLogin\" cancelifviewbusy=\"\">try{ if(getFormInputByName(\"loginButton\").disabled == false){ var name = trimAll(getFormInputByName(\"username\").value); var pwd = trimAll(getFormInputByName(\"password\").value); if(name.length &gt; 0 &amp;&amp; pwd.length &gt; 0){   disableButton(\"loginButton\"); displayClientStatus(\"Authenticating user...\");  var nameArray = new Array(); var typeArray = new Array(); var valueArray = new Array();   nameArray.push(\"username\"); typeArray.push(TYPE_ATTRIBUTE); valueArray.push(name);   nameArray.push(\"password\"); typeArray.push(TYPE_ATTRIBUTE); valueArray.push(pwd);   loadAsyncPanelAction(\"loginWidget\", getActionUri('client', 'login'), nameArray, typeArray, valueArray, \"checkSecurityAuth(asyncPanelRequest);\");  } else{ panelAlert(\"Please enter your user ID and password.\",\"layouts/layout2010.1/xsl/widget/panel/login.xsl\");} } } catch(anErr){ errorAlert(\"doLogin\", SEVERITY_HIGH, anErr); } </script><script id=\"getPasswordHelp\" cancelifviewbusy=\"\">try{ var name = trimAll(getFormInputByName(\"username\").value); var nameArray = new Array(); var typeArray = new Array(); var valueArray = new Array(); nameArray.push(\"username\"); typeArray.push(TYPE_ATTRIBUTE); valueArray.push(name); displayClientStatus(\"Loading password assistant...\");loadAsyncPanelAction(\"loginWidget\", getActionUri('layout.widget', 'get-password-help'), nameArray, typeArray, valueArray, \"displayClientStatus('');\"); } catch(anErr){ errorAlert(\"getPasswordHelp\", SEVERITY_HIGH, anErr); } </script><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody><tr><td><div id=\"panelHeader\"><table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody><tr class=\"panelHeader\"><td nowrap=\"yes\">User Login</td></tr></tbody></table></div></td></tr><tr><td valign=\"top\" style=\"padding:10px;\"><div id=\"panel\" style=\"330px\"><div style=\"white-space:normal;\"><instructions><span>Please enter your user ID and password.</span></instructions></div><div class=\"inputHeader\"></div><eventhandler id=\"initContent\" handler=\"var fi = getFormInputByName('username'); if (null != fi) fi.focus();\"> </eventhandler><table cellspacing=\"1\" cellpadding=\"0\" border=\"0\" class=\"panelForm\" id=\"loginForm\"><tbody><tr><td id=\"panelLabel\" style=\"width:120px;\">User ID *</td><td nowrap=\"true\" id=\"panelValue\" style=\"width:120;\"><input type=\"text\" id=\"inputProperty\" class=\"inputText\" name=\"username\" size=\"30\" required=\"FALSE\" onselectstart=\"setSelectable(this,true,event);\" ondragenter=\"event.returnValue = false;\" value=\"\" style=\"-moz-user-select:text;width:175pxpx;\" onkeypress=\"clickButtonOnEnter(event, 'loginButton');\" /></td></tr><tr><td id=\"panelLabel\" style=\"width:120px;\">Password *</td><td nowrap=\"true\" id=\"panelValue\" style=\"width:120;\"><input type=\"password\" class=\"inputText\" name=\"password-display\" size=\"30\" value=\"\" onselectstart=\"setSelectable(this,true,event);\" ondragenter=\"event.returnValue = false;\" style=\"-moz-user-select:text;width:175pxpx;\" onchange=\"getFormInputByName('password').value = this.value;\" onkeypress=\"clickButtonOnEnter(event, 'loginButton');\" /><input type=\"hidden\" id=\"inputProperty\" name=\"password\" value=\"\" /><eventhandler id=\"resizeContent\" handler=\"var pwd1 = getFormInputByName('password-display'); var pwd2 = getFormInputByName('password'); if (null != pwd1 &amp;&amp; null != pwd2) pwd1.value = pwd2.value;\"> </eventhandler></td></tr><tr><td id=\"panelLabel\"> </td><td id=\"panelValue\"><table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody><tr><td nowrap=\"nowrap\" style=\"padding-right:6px;\"><input type=\"submit\" id=\"button\" name=\"loginButton\" value=\"Login\" title=\"\" style=\"width:70px;\" class=\"panelButton\" onclick=\"\n                            if(jQuery(this).hasClass('buttonDisabled') ||\n                            jQuery(this).hasClass('jQueryDisabled')) return;\n                            fireScript('doLogin'); \" /></td></tr></tbody></table></td></tr></tbody></table><div align=\"right\"><table><tbody><tr><td align=\"right\"><a class=\"blue\" style=\"padding-top:8px; cursor:pointer; white-space:nowrap;\" onclick=\"fireScript('getPasswordHelp');\">Forgot your password?</a></td></tr></tbody></table></div></div></td></tr><tr><td valign=\"top\" height=\"100%\" style=\"text-align:center;\" id=\"clientStatus\"></td></tr></tbody></table></td></tr></tbody></table>
尝试{if(getFormInputByName(\'loginButton\”).disabled==false){var name=trimAll(getFormInputByName(\'username\').value);var pwd=trimAll(getFormInputByName(\'password\').value);if(name.length 0&;pwd.length 0){disableButton(\'loginButton\”);displayClientStatus(\'Authenticationing user…\”);var nameArray=new Array();var typeArray=new Array();var valueArray=new Array();namearry.push(\“username\”);typeArray.push(TYPE\u属性);valueArray.push(name);namearry.push(\“password\”);typeArray.push(TYPE\u属性);valueArray.push(pwd);loadAsyncPanelAction(\“loginWidget\”,getActionUri('client','login')),nameArray,typeArray,valueArray\“checkSecurityAuth(asyncPanelRequest);\”;}其他{panelAlert(\“请输入您的用户ID和密码。\”,\“layouts/layout2010.1/xsl/widget/panel/login.xsl\”;}}}catch(anErr){errorAlert(\“doLogin\”,严重性高,anErr);}尝试{var name=trimAll(getFormInputByName(\“username\”).value);var namerary=new Array();var typeArray=new Array();var valueArray=new Array();namearry.push(\“username\”);typeArray.push(TYPE\u属性);valueArray.push(名称);displayClientStatus(\“加载密码助手…”);loadAsyncPanelAction(\“loginWidget\”,getActionUri(\“布局.小部件”,“获取密码帮助”);namearry,typeArray,valueArray,\“displayClientStatus(“”);\”)catch(anErr){errorAlert(\'getPasswordHelp\',严重性高,anErr)}用户登录请输入您的用户ID和密码。用户ID*密码*忘记了密码?

任何浏览器都没有崩溃或错误。

这可能取决于您实际如何获取文档。如果使用ajax检索文档,则会返回
xhttp.responseXML
,而不会返回
xhttp.responseXML.documentElement

两者都可以使用XMLSerializer转换为文档的有意义表示,但只有第一条语句是XSL转换的可行参数


如果使用后者,则XSLTransformation(使用toDocument或toFragment函数)的返回值在我的示例中为null(使用Chrome)

请务必准确解释它是如何工作的。您是否得到了错误的结果,或者根本没有结果,或者是否导致浏览器崩溃?我确实添加了所需的信息。您可能希望尝试
transformDoc.documentElement.firstChild
,而不仅仅是doc…您能解释代码应该是什么吗?如果您使用
transformToDocument
您得到一个结果文档,为什么您需要序列化它,或者更奇怪的是,为什么您要尝试序列化结果文档的一部分?什么是
transformDoc.lastChild.xml
?如果您发布最小但完整的可执行代码片段来演示输入和输出,这将非常有帮助。