我无法让我的javascript更改页面上的文本

时间:2013-01-19 17:58:51

标签: javascript html

Edit2:一位朋友告诉我,我忘了提到这个脚本会加载Greasemonkey

我对Javascript很新,我正在尝试自学。

我一直在尝试使用以下代码行来改变页面上的文本:

document.getElementById("gamepage_header").innerHTML = '<h1>Test</h1>'

而不是做我想做的事,似乎只是坐在那里什么都不做。 是的,我已经在许多地方寻找工作的东西。

由于

编辑: 这是我正在尝试编辑的页面。 http://www.kongregate.com/games/kChamp/shellshock-live 我的想法是在HTML中获取一个链接,然后将gamepage_header设置为链接,这样我只需右键单击并下载.swf即可。

根据要求,这是我的整个“代码”,如果你可以称之为。

// ==UserScript==
// @name         SWFLinkage for KH
// @namespace   tag://kongregate
// @description SWF Link getter
// @version     1
// @grant           none
// @author          SimpleAOB
// @date            12.7.2012
// ==/UserScript==
document.onload = function(){
   document.getElementById("gamepage_header").innerHTML = '<h1>Test</h1>' 
};

2 个答案:

答案 0 :(得分:0)

Matt Ball的评论显示你需要等到页面加载。

代码可能在加载gamepage_header之前运行。要解决此问题,请使用:

window.onload = function(){
    // Code goes here.
};

等待页面加载,然后运行代码。不要担心语法;随着你在JS中获得更多技能,你将很快学到很多东西。

答案 1 :(得分:0)

您必须确保在运行脚本之前已经加载了页面,因为您在完全加载之前尝试访问DOM,无论是在头部添加脚本还是在关闭正文标记之前添加脚本,但是在你的关闭身体标签之前添加一个微小的性能提升,无论它是否包含在window.onload = function(){};中,你的好处都可以。

http://jsfiddle.net/G58KY/

从您的修改中,您需要http://jsfiddle.net/YsnJv/之类的内容 指定您尝试访问哪个链接作为“链接”最不可能,除非有可能链接具有相同的ID

window.onload = function () {
    var link = document.getElementById("link").href;
    document.getElementById("gamepage_header").innerHTML = '<h1><a href="'+link+'">Test</a></h1>';
}