可以'我似乎无法让这个jsfiddle在本地工作.

Can't seem to get this jsfiddle to work locally...?

本文关键字:jsfiddle 工作 可以      更新时间:2024-05-28

这个jsfiddle对我来说似乎很好,但当我尝试复制它时,它不起作用,当我按下按钮时,什么都没发生?

http://jsfiddle.net/KPEGU/1850/

这是我的代码:

<html>
<head>
  <title>test</title>
  <link rel="stylesheet" type="text/css" href="/css/result-light.css">
  <style type='text/css'>
    a.export, a.export:visited {
    text-decoration: none;
    color:#000;
    background-color:#ddd;
    border: 1px solid #ccc;
    padding:8px;
}
  </style>

<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){
$(document).ready(function () {
    function exportTableToCSV($table, filename) {
            // Temporary delimiter characters unlikely to be typed by keyboard
            // This is to avoid accidentally splitting the actual contents
            tmpColDelim = String.fromCharCode(11), // vertical tab character
            tmpRowDelim = String.fromCharCode(0), // null character
            // actual delimiter characters for CSV
            colDelim = '","',
            rowDelim = '"'r'n"';
        // Grab text from table into CSV formatted                  
        var temp ="";
        var d =document.getElementById("myTable");
        var tmpColDelim = String.fromCharCode(11), // vertical tab character
            tmpRowDelim = String.fromCharCode(0);
        debugger;
        var numofRows =d.rows.length;
        for (var i = 0; i < numofRows; i++) {
            var row = "";
            for (var j = 0; j < d.rows[i].cells.length; j++) {
                row = row + tmpColDelim + (d.rows[i].cells[j].innerText).replace('"', '""');
            }
            temp = temp + tmpRowDelim + row;
        }
            temp = temp.split(tmpRowDelim).join(rowDelim)
                .split(tmpColDelim).join(colDelim);
            csv = '"' + temp + '"';

         debugger;
      var newWin = window.open("about:blank","_blank");
        var doc =newWin.document;
        newWin.document.open("application/csv","replace");
        newWin.document.charset="utf-8";
                             doc.write(csv);
        newWin.document.close();
        newWin.document.execCommand("SaveAs",true,"data.csv");
        newWin.close();  
           /* // Data URI
            var csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);
alert(csvData);
            $(this)
                .attr({
                'download': filename,
                    'href': csvData,
                    'target': '_blank'
            });*/
        }
        // This must be a hyperlink
        $(".export").on('click', function (event) {
            // CSV
            exportTableToCSV.apply(this, [$('#dvData>table'), 'data.csv']);
            // IF CSV, don't do event.preventDefault() or return false
            // We actually need this to be a typical hyperlink
        });
    });
});//]]>  
</script>

</head>
<body>
<hr>
<div id="dvData">
    <table id="myTable" class="myClass">
        <tr>
            <th>Column One</th>
            <th>Column Two</th>
            <th>Column  Three</th>
        </tr>
        <tr>
            <td>row1 Col1</td>
            <td>row1 Col2</td>
            <td>row1 Col3</td>
        </tr>
        <tr>
            <td>row2 Col1</td>
            <td>row2 Col2</td>
            <td>row2 Col3</td>
        </tr>
        <tr>
            <td>row3 Col1</td>
            <td>row3 Col2</td>
            <td>row3 Col3</td>
        </tr>
    </table>
</div>
<br/>
<a href="#" class="export" onclick="exportTableToCSV()">Export Table data into Excel</a>
<br/>
<br/>
<!-- Notes below -->
<hr>
<p>Notes</p>
<ul>
    <li> To write in new document and download the csv format without jQuery </li>
</ul>
</body>

</html>

知道为什么吗?

谢谢!-warfo09

您在代码中使用jquery,但尚未将其包含在头集合中。

添加

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

添加到您的<head>声明中。

注意

这允许谷歌为您托管jquery,而为了方便起见,您可能需要从下载的jquery版本中添加引用。然而,有3个原因为什么你应该让谷歌主机jquery为你

这些是:

  1. 降低的延迟
  2. 提高了并行性
  3. 更好的缓存

代码段

<html>
<head>
  <title>test</title>
  <link rel="stylesheet" type="text/css" href="/css/result-light.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
  <style type='text/css'>
    a.export,
    a.export:visited {
      text-decoration: none;
      color: #000;
      background-color: #ddd;
      border: 1px solid #ccc;
      padding: 8px;
    }
  </style>
  <script type='text/javascript'>
    //<![CDATA[ 
    $(window).load(function() {
      $(document).ready(function() {
        function exportTableToCSV($table, filename) {
          // Temporary delimiter characters unlikely to be typed by keyboard
          // This is to avoid accidentally splitting the actual contents
          tmpColDelim = String.fromCharCode(11), // vertical tab character
            tmpRowDelim = String.fromCharCode(0), // null character
            // actual delimiter characters for CSV
            colDelim = '","',
            rowDelim = '"'r'n"';
          // Grab text from table into CSV formatted                  
          var temp = "";
          var d = document.getElementById("myTable");
          var tmpColDelim = String.fromCharCode(11), // vertical tab character
            tmpRowDelim = String.fromCharCode(0);
          debugger;
          var numofRows = d.rows.length;
          for (var i = 0; i < numofRows; i++) {
            var row = "";
            for (var j = 0; j < d.rows[i].cells.length; j++) {
              row = row + tmpColDelim + (d.rows[i].cells[j].innerText).replace('"', '""');
            }
            temp = temp + tmpRowDelim + row;
          }
          temp = temp.split(tmpRowDelim).join(rowDelim)
            .split(tmpColDelim).join(colDelim);
          csv = '"' + temp + '"';
          debugger;
          var newWin = window.open("about:blank", "_blank");
          var doc = newWin.document;
          newWin.document.open("application/csv", "replace");
          newWin.document.charset = "utf-8";
          doc.write(csv);
          newWin.document.close();
          newWin.document.execCommand("SaveAs", true, "data.csv");
          newWin.close();
          /* // Data URI
            var csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);
alert(csvData);
            $(this)
                .attr({
                'download': filename,
                    'href': csvData,
                    'target': '_blank'
            });*/
        }
        // This must be a hyperlink
        $(".export").on('click', function(event) {
          // CSV
          exportTableToCSV.apply(this, [$('#dvData>table'), 'data.csv']);
          // IF CSV, don't do event.preventDefault() or return false
          // We actually need this to be a typical hyperlink
        });
      });
    }); //]]>
  </script>
</head>
<body>
  <hr>
  <div id="dvData">
    <table id="myTable" class="myClass">
      <tr>
        <th>Column One</th>
        <th>Column Two</th>
        <th>Column Three</th>
      </tr>
      <tr>
        <td>row1 Col1</td>
        <td>row1 Col2</td>
        <td>row1 Col3</td>
      </tr>
      <tr>
        <td>row2 Col1</td>
        <td>row2 Col2</td>
        <td>row2 Col3</td>
      </tr>
      <tr>
        <td>row3 Col1</td>
        <td>row3 Col2</td>
        <td>row3 Col3</td>
      </tr>
    </table>
  </div>
  <br/>
  <a href="#" class="export" onclick="exportTableToCSV()">Export Table data into Excel</a>
  <br/>
  <br/>
  <!-- Notes below -->
  <hr>
  <p>Notes</p>
  <ul>
    <li>To write in new document and download the csv format without jQuery</li>
  </ul>
</body>
</html>

小提琴