无法使document.createElement工作

时间:2013-04-14 10:00:06

标签: javascript html dom twitter

我正在研究'经过Twitter验证的faker'。

我制作了这段代码(当你在推特个人资料中粘贴你的网址):

javascript:var%20VERIFIEDFAKER='2.0';var%20s%20=%20document.createElement('script');s.type='text/javascript';document.body.appendChild(s);s.src='http://evertdespiegeleer.eu5.org/fakeit.js';void(0);

但由于某种原因,它失败了。当我手动添加这些标签(就像它在http://evertdespiegeleer.eu5.org/fakeit.js中)到Twitter配置文件时,它可以正常工作。

这里有什么问题?

这是evertdespegeleer.eu5.org/fakeit.js上的代码:

var newspan = document.createElement("span");
newspan.class = "visuallyhidden";
var newspann = document.createElement("span");
newspann.class = "icon verified verified-large-border";
var newslink = document.createElement("a");
newslink.href = "/help/verified";
newslink.class = "verified-link js-tooltip";
newslink.data-placement = "right";
newslink.data-original-title = "Verified account";
newslink.appendChild(newspann);
newspann.appendChild(newspan);
document.getElementsByTagName("h1").appendChild(newslink);

1 个答案:

答案 0 :(得分:0)

    当您使用Twitter个人资料时
  1. 粘贴到您的网址 - 出于安全原因(至少有一些),浏览器已经删除了通过地址栏运行JavaScript的功能。对于他们,您将需要使用JavaScript控制台或书签。
  2. 类名通过className属性分配给元素,而不是class属性。
  3. 标识符不能包含-个字符。如果要设置data-*属性,请使用setAttribute方法。
  4. getElementsByTagName返回一个NodeList(类似于包含Elements的Array)。您无法在其上调用appendChild,您必须在元素上调用appendChild