无法在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中。

有了这个和一些聪明的想法(取决于网站上现有的代码),你可以做你想要的东西。

+0

是的,我担心类似的情况是这样,如果你不介意我有一个像我说的问题,我添加了一个新的脚本,但它没有奏效。无论如何,我可以制作一种新版本,代替旧版本,即原版。 – radicalhorse

+0

我认为不是。你可以附加新的代码,这些代码将与旧的代码一起执行(具有相同的优先级)。 – Imaginaroom

+0

再次感谢您的帮助和澄清。我想我知道我必须做什么,并且将会使用代码。 – radicalhorse