调用javascript并在右侧框架中显示结果

Call javascripting and display result in right hand frame

本文关键字:框架 显示 结果 javascript 调用      更新时间:2023-09-26

在框架的左侧有一个菜单。我正在尝试调用一个javascript,它将在从XML数据和XSL模板生成的框架的右侧加载一个新的html。

用固定参数在一页内完成的代码工作得很好。我纠结的两个问题是:

  • 如何使它灵活,所以我可以使用不同的xml数据和模板上调用脚本
  • 如何在右侧框架窗格中显示数据。

左边窗格的代码:

<html>
  <head>
    <script>
      function loadXMLDoc(filename)
        {
         if (window.ActiveXObject)
           {
            xhttp = new ActiveXObject("Msxml2.XMLHTTP");
           }
         else 
           {
            xhttp = new XMLHttpRequest();
           }
         xhttp.open("GET", filename, false);
         try {xhttp.responseType = "msxml-document"} catch(err) {} // Helping IE11
         xhttp.send("");
         return xhttp.responseXML;
        }
       function displayResult(xmlid,xslid)
        {
         xml = loadXMLDoc("XMLDATA/xmlid");
         xsl = loadXMLDoc("XMLDATA/xslid");
         // code for IE
         if (window.ActiveXObject || xhttp.responseType == "msxml-document")
          {
           ex = xml.transformNode(xsl);
           document.getElementById("example").innerHTML = ex;
          }
         // code for Chrome, Firefox, Opera, etc.
         else if (document.implementation && document.implementation.createDocument)
          {
           xsltProcessor = new XSLTProcessor();
           xsltProcessor.importStylesheet(xsl);
           resultDocument = xsltProcessor.transformToFragment(xml, document);
           document.getElementById("example").appendChild(resultDocument);
          }
        }
    </script>
  </head>
  <body>
    <p><a href="javascript:void(0);" onclick="displayResult('XMLDATA/cdcatalog.xml','XSL/cdcatalog.xsl');">TEST</a></p>
    <p><a href="javascript:void(0);" onclick="displayResult('XMLDATA/cdcatalog2.xml','XSL/cdcatalog2.xsl');">TEST</a></p>
    <div id="example" />
  </body>
</html>

如果我省略脚本中的两个参数,则调用:

<a href="javascript:void(0);" onclick="displayResult();">TEST</a>

并在这里的参数中分配数据源:

 xml = loadXMLDoc("XMLDATA/cdcatalog.xml");
 xsl = loadXMLDoc("XMLDATA/cdcatalog.xsl");

然后在同一页上工作

我不是一个程序员,所以一些帮助将是伟大的。

您没有使用传入的变量,您只是使用静态文本。

function displayResult(xmlid,xslid)变化开始时…

 xml = loadXMLDoc("XMLDATA/xmlid");
 xsl = loadXMLDoc("XMLDATA/xslid");

……

 xml = loadXMLDoc(xmlid);
 xsl = loadXMLDoc(xslid);

更新 -回应OPs评论…

如果你想在页面上移动元素,我会认真考虑一下jquery,它可以很容易地让你分离项目并将它们附加到另一个区域。

例如…

$(function(){
  var $rightArea = $("#rightarea");
  $("#leftarea *").each(function(){
    $(this).detach().appendTo($rightArea);
  });
});