1

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>' 
};
4

2 回答 2

0

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

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

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

这会等到页面加载完毕,然后运行代码。不用担心语法;随着您在 JS 中获得更多技能,您将很快学会。

于 2013-01-19T18:07:11.333 回答
0

您必须确保页面在运行脚本之前已加载,因为您尝试在完全加载之前访问 DOM,无论您是在头部添加脚本还是在结束正文标记之前添加脚本由您决定,但在您之前添加关闭 body 标记将有一个微小的性能改进,只要它被包裹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>';
}
于 2013-01-19T18:25:20.730 回答