无法在HTML网站中修改javascript
你好,我是比较新的,从未在一个月前编码过,但我慢慢地通过html,css和javascript自学了一个网站的结构和内部工作原理。我正在尝试修改网站中的特定脚本。这个网站是无法在HTML网站中修改javascript
https://www.wizards.com/dnd/dice/dice.htm
我的目标是让这个我可以操纵一个骰子给我一个改变的范围,而不是如1-4,也许1-10,也可能给我我指定的号码。我也想尽可能不改变网站的整体美感。
所以首先,我把这个方便的一段代码在URL javascript:document.body.contentEditable ='true'; document.designMode = '上'; void 0
它允许我将内容编辑为内容。
我想要变得简单,只需更改D4骰子元素https://gyazo.com/adf563827f63edd37264882e90fd5f85,这样就可以给出我在1-20范围内的数字。
此元素的HTML代码是
<a href="javascript:void(null)" onclick="rolld4()"><img src="https://www.wizards.com/dnd/dice/images/d4a.jpg" alt="d4" name="d4" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('document.d4','document.d4','images/d4b.jpg')" width="38" border="0" height="37"></a>
我注意到的onclick =“rolld4()”所以我看了网站的头内和内<script language="JavaScript1.2"></script>
这些代码行的注意。
function rolld4() {
d4rolls = parseInt(document.form1.d4n.value);
d4mod = parseInt(document.form1.d4mo.value);
dtotal = "";
d4res = 0;
rtotal = document.form1.runningtotal.value;
for (i=0; i<2; i++) {
if (document.form1.d4m[i].checked) {
d4pm = i }
}
if (d4pm == 0) {
dtotal = dtotal + "Roll(" + d4rolls.toString() + "d4" + ")+" + d4mod.toString() + ":\n"
}
if (d4pm == 1) {
dtotal = dtotal + "Roll(" + d4rolls.toString() + "d4" + ")-" + d4mod.toString() + ":\n"
}
for (r=0; r<d4rolls; r++) {
var d4 = Math.floor((Math.random() * 4) + 1);
d4res = d4res + d4;
dtotal = dtotal + d4.toString() + ","
}
if (d4pm == 0) {
d4res = d4res + d4mod;
dtotal = dtotal + "+" + d4mod + "\n" + "Total:" + d4res
}
if (d4pm == 1) {
d4res = d4res - d4mod;
if (d4res <= minimumvalue) {
d4res = minimumvalue;
}
dtotal = dtotal + "-" + d4mod + "\n" + "Total:" + d4res
}
document.form1.d4r.value = d4res;
rtotal = dtotal + "\n\n" + rtotal;
document.form1.runningtotal.value = rtotal;
}
我上述行Math.floor((Math.random() * 4) + 1)
改变以Math.floor((Math.random() * 20) + 1)
我然后创建与修改后的代码新的脚本,把它应该改变输出给我从1-20我的范围D4骰子元件下方。我能够取得一些成功,并且事实上模仿了1-20的滚动范围。但是,这只对我有用,而且即使经历了完全相同的过程,我也无法复制它。
我还在<script language="JavaScript1.2"></script>
脚本中看到这是一个大的评论。这是让我感到困惑的,因为如果代码中的javascript函数被转换为注释,那么当骰子被点击和“滚动”时,JavaScript被从中拉出。我似乎找不到消息来源。
我是一个总的新手,当谈到JavaScript我主要是钻研HTML和CSS设计网站,所以我几乎没有一般的格式JavaScript的知识。
您无法更改(更改)或删除加载的网站上的任何JavaScript。这是不可能的,因为Web浏览器在加载网站并为其准备执行时首先编译javascript。 即使您删除了一个脚本标记,该段代码仍然存在于内存中的某处。
但是,您可以通过Mozilla Firefox中的Web控制台或Scratchpad将JavaScript代码片段添加到网页中(可以认为它是通过单独的脚本标记添加到页面末尾)或开发人员工具>控制台在Google Chrome中。
有了这个和一些聪明的想法(取决于网站上现有的代码),你可以做你想要的东西。
是的,我担心类似的情况是这样,如果你不介意我有一个像我说的问题,我添加了一个新的脚本,但它没有奏效。无论如何,我可以制作一种新版本,代替旧版本,即原版。 – radicalhorse
我认为不是。你可以附加新的代码,这些代码将与旧的代码一起执行(具有相同的优先级)。 – Imaginaroom
再次感谢您的帮助和澄清。我想我知道我必须做什么,并且将会使用代码。 – radicalhorse