开发者问题收集

未捕获的类型错误:无法将属性“href”设置为 null

2017-09-19
6821
  • 我正在尝试从网格下载文件。
    • 当我单击打开第一个窗口链接时,会弹出一个窗口。
    • 在该弹出窗口中,您将看到一个网格。
    • 但现在您将看到网格,但下面一行发生了错误。
    • 我正在尝试下载类似此功能的文件 https://jsfiddle.net/335t5aow/

未捕获的 TypeError:无法设置 null 的属性“href”

template: "<a class=\"sportsDataPlayer\" onclick=\"window.open('#= FileName#', 'popup', 'width=800,height=600,scrollbars=yes,resizable=no')\">#= FileName.substring(FileName.lastIndexOf('/')+1) #</a>"
  • 你们能告诉我如何修复它吗?
  • 提供以下代码

http://jsfiddle.net/savyjgg2/2/

template: "<a class=\"sportsDataPlayer\" onclick=\"window.open('#= FileName#', 'popup', 'width=800,height=600,scrollbars=yes,resizable=no')\">#= FileName.substring(FileName.lastIndexOf('/')+1) #</a>"    
var csv = "a,b,c\n1,2,3\n";
var data = new Blob([csv]);
var a2 = document.getElementById(".sportsDataPlayer");
alert("I am here");
a2.href = URL.createObjectURL(data);
2个回答

更新:

Ja Ja 我已经更新了小提琴,但这只是一个部分锻炼(只会下载第一个文件)。要将文件呈现为可下载,您必须在 <a> 标签中使用 download 属性。

在您的 JS 代码中,您必须相应地更改逻辑,以便 download 属性将分别应用于每个文件名。

试试这个 FIDDLE ,只有一个小修正

变化是,

  1. var a2 = document.getElementById("sportsDataPlayer");
  2. class=\"sportsDataPlayer\" 更改为 id=\"sportsDataPlayer\"
Parag Jadhav
2017-09-19

此处有错误: var a2 = document.getElementById(".sportsDataPlayer");

修复: var a2 = document.getElementsByClassName("sportsDataPlayer");

minhung
2017-09-19