【发布时间】:2016-09-25 19:45:39
【问题描述】:
您好,我比较新,一个月前从未编写过代码,但我正在慢慢地通过 html、css 和 javascript 自学网站的结构和内部工作原理。我正在尝试修改网站中的特定脚本。这个网站是
https://www.wizards.com/dnd/dice/dice.htm
我的目标是做到这一点,以便我可以操纵掷骰子给我一个改变的范围,例如,而不是 1-4,也许是 1-10,也许还给我一个我指定的数字。我还想尽可能保持网站的整体美感。
首先我将这段方便的代码放在 URL 中 javascript:document.body.contentEditable='true'; document.designMode='开';无效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)
然后,我使用修改后的代码创建了一个新脚本,并将其放在 D4 dice 元素下方,该元素应该会改变输出以使我的范围为 1-20。我能够取得一点成功,实际上确实模仿了 1-20 的滚动范围。但是,这只对我有用一次,即使经过完全相同的过程,我也无法复制它。
我还在<script language="JavaScript1.2"></script>scripts 中看到这是一个很大的评论。这让我感到困惑,因为如果代码中的 javascript 函数被转换为 cmets,那么当点击和“滚动”骰子时,javascript 是从哪里拉出来的。我好像找不到源。
在 javascript 方面,我完全是个新手,我主要研究 HTML 和 CSS 来设计网站,所以除了一般格式之外,我对 javascript 的了解几乎为零。
【问题讨论】:
标签: javascript jquery html css edit