将div标签的innerHTML设置为字符串会返回未指定的错误

时间:2017-10-28 18:48:33

标签: javascript html

所以,为了好玩,我和我的朋友正在为this game开发作弊,最近已经病毒化了。该网站已经有一个隐藏在评论标签中的作弊按钮。我正在尝试使用Javascript将作弊按钮添加到页面中。这就是我到目前为止所拥有的:

var tt=document.createElement('div');
tt.setAttribute('id', 'CMenu');
var g=document.getElementById('adCost');
var RAW='<button id ="save1Button" onclick=\"save1()\">SAVE SLOT 1</button>' +
'<button id ="load1Button" onclick="load1()">LOAD SLOT 1</button>' +
'<button id ="save2Button" onclick="save2()">SAVE SLOT 2</button>' +
'<button id ="load2Button" onclick="load2()">LOAD SLOT 2</button>' +
'<button id ="resetButton" onclick="reset()">RESET ALL PROGRESS</button>' +
'<button id ="freeClipsButton" onclick="cheatClips()">Free Clips</button>' +
'<button id ="freeMoneyButton" onclick="cheatMoney()">Free Money</button>' +
'<button id ="freeTrustButton" onclick="cheatTrust()">Free Trust</button>' +
'<button id ="freeOpsButton" onclick="cheatOps()">Free Ops</button>' +
'<button id ="freeCreatButton" onclick="cheatCreat()">Free Creativity</button>' +
'<button id ="freeYomiButton" onclick="cheatYomi()">Free Yomi</button>' +
'<button id ="resetPrestige" onclick="resetPrestige()">Reset Prestige</button>' +
'<button id ="destroyAllHumansButton" onclick="cheatHypno()">Destroy all Humans</button>' +
'<button id ="freePrestigeU" onclick="cheatPrestigeU()">Free Prestige U</button>' +
'<button id ="freePrestigeS" onclick="cheatPrestigeS()">Free Prestige S</button>' +
'<button id ="debugBattleNumbers" onclick="setB()">Set Battle Number 1 to 7</button>' +
'<button id ="availMatterZero" onclick="zeroMatter()">Set Avail Matter to 0</button>';
document.getElementById('CMenu').innerHTML= RAW
g.appendChild(tt);

当我运行最后一行时,我得到一个未指定的错误。

example

没有缩进,因为它将作为Javascript书签运行。我不能在我将执行它的场景中使用inspect元素和控制台。

2 个答案:

答案 0 :(得分:0)

您所看到的不是错误,只是浏览器打印出您设置的.innerHTML

这种情况正在发生,因为您在控制台中运行代码,故意为您提供更多反馈。如果您在书签或脚本中运行它,它将不会显示。

但是,您的代码中确实存在错误。您创建了tt元素,为其提供了CMenu的ID,但在将其附加到文档之前,您尝试通过它的ID获取它,但它尚未包含在文档中。

解决方案是在尝试通过ID获取元素之前将元素添加到文档中,或者更好的方法,只需引用现有的tt变量。

var tt = document.createElement('div');
tt.id = 'CMenu'; // set id property directly, no need for setAttribute
var raw = '...';
tt.innerHTML = raw ; // reuse the reference you already have
g.appendChild(tt);

答案 1 :(得分:0)

尝试使用以下位置的书签来the game上的作弊菜单:

In [741]: np.random.seed(0)

In [742]: a = np.random.randint(0,1000,(1000,1000))

In [743]: largest_sum_pos_app1(a, n= 5)
Out[743]: (966, 403)

In [744]: largest_sum_pos_app1_mod1(a, n= 5)
Out[744]: (966, 403)

In [745]: largest_sum_pos_app2(a, n= 5)
Out[745]: (966, 403)

In [746]: %timeit largest_sum_pos_app1(a, n= 5)
     ...: %timeit largest_sum_pos_app1_mod1(a, n= 5)
     ...: %timeit largest_sum_pos_app2(a, n= 5)
     ...: 
10 loops, best of 3: 57.6 ms per loop
100 loops, best of 3: 10.1 ms per loop
10 loops, best of 3: 47.7 ms per loop