- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面是我一直在处理的索引页的 html。我想创建一个带有 onclick 函数的按钮来说“hello world”。所以我使用了页面底部的脚本,但是按钮触发了所描述的错误。
最令人困惑的部分是,该按钮一直运行良好,直到我更改了该函数的名称。从那以后我就遇到了麻烦,即使我将函数名称改回了现在的名称。
<body>
<h1>Play Color Trivia</h1>
<div id="message">
</div>
<button onclick="sayhello()">speak</button>
<button id="roll_button" onclick="color_roll()">Color Roll</button><br><br>
<div id="color_box">
<div id="score_box">
<ul id="list" style="list-style-type: none">
<%= erb :token %>
</ul>
</div>
</div><br><br>
<div id="button_box">
<form id="color_form" method="post" target="frame">
</form>
</div><br><br>
<div id="question_box">
</div>
<div id="results">
</div>
<script src="/script.js" type="text/javascript">
</script>
<script src="http://code.responsivevoice.org/responsivevoice.js">
function sayhello(){
responsiveVoice.speak("hello world");
}
</script>
<iframe id="frame" name="frame"></iframe>
Script.js 文件
var evaluate; var list; var bullet; var colorize; var count; var stop; var change; var box; var roll_button; var button; var button_2; var message; var text; var question; var button_box = document.getElementById("button_box");
function color_roll(){
roll_button = document.getElementById("roll_button")
roll_button.style.display = "none"
box = document.getElementById("color_box");
change = setInterval(color,250)
stop = (Math.floor(Math.random() * 18))+1
// stop = 7
count = 0
}
function color(){
var array = ["red","orange","yellow","green","blue","purple","red","orange","yellow","green","blue","purple","red","orange","yellow","green","blue","purple"]
box.style.backgroundColor = array[count];
count += 1;
if (count == stop){
colorize = array[count-1]
clearInterval(change);
create_buttons();
color_selection();
}
}
function color_selection(){
if (colorize == "orange"){
message = document.getElementById("message");
text = document.createTextNode("You rolled an " + colorize);
message.appendChild(text);
rolled_color();
}
else{
message = document.getElementById("message");
text = document.createTextNode("You rolled a " + colorize);
message.appendChild(text);
rolled_color();
}
}
function helper(){
remove();
color_roll();
}
function create_buttons(){
button = document.createElement("input");
button_2 = document.createElement("input");
button.type = "button";
button_2.type = "button";
button.value = "Choose Color";
button_2.value = "Roll Again";
button.setAttribute("onClick","display()")
button_2.setAttribute("onClick","helper()");
button_box = document.getElementById("button_box");
button_box.appendChild(button);
button_box.appendChild(button_2);
}
function remove(){
button_box = document.getElementById("button_box");
button_box.removeChild(button);
button_box.removeChild(button_2);
message.removeChild(text);
}
//Create JSON objects for trivia questions
// var object = JSON.parse('{"red":"Three trivia questions will appear here"}')
function display(){
remove();
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200) {
document.getElementById("question_box").innerHTML = this.responseText;
}
};
xhttp.open('GET','/question',true);
xhttp.send();
document.getElementById("question_box").style.display = "block"
}
function hello(){
console.log("hello world")
}
function display_result(){
// remove();
document.getElementById("submit").style.display = "none"
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200) {
document.getElementById("results").innerHTML = this.responseText;
}
};
xhttp.open('GET','/test',true);
xhttp.send();
}
function rolled_color(){
var input = document.createElement("input");
input.style.display = "none";
var submit = document.createElement("input");
submit.style.display = "none";
input.name = "rolled_color";
input.value = colorize;
submit.type = "submit";
var form = document.getElementById("color_form")
form.appendChild(input)
form.appendChild(submit)
document.forms['color_form'].submit();
// display();
}
function add_bullet(){
document.getElementById("test").style.display = "none"
document.getElementById("evaluate_button").style.display = "none"
document.getElementById("question_box").style.display = "none"
evaluate = document.getElementById("value_input").value
bullet = document.createElement("li")
canvas = document.createElement("canvas")
var ctx = canvas.getContext("2d")
list = document.getElementById("list")
// list.style.list-style-type: none
canvas.width = 50
canvas.height = 50
// canvas.style.border = "2px solid black"
canvas.style.backgroundColor = colorize
// canvas.appendChild(document.createTextNode("test"))
if (evaluate == "You're Correct!"){
bullet.appendChild(canvas);
list.appendChild(bullet);
}
color_roll();
}
最佳答案
如 this question 中所述
如果 <script>
如果有 src 那么该元素的文本内容将不会作为 JS 执行(尽管它会出现在 DOM 中)。
您需要使用多个脚本元素。
<script>
加载外部脚本<script>
保存内联代码(通过调用外部脚本中的函数)在您的情况下,您必须使用两个脚本,如下所示,
<script src="http://code.responsivevoice.org/responsivevoice.js">
</script>
<script>
function sayhello(){
//function calls to externel js
}
</script>
关于javascript - Uncaught ReferenceError : function is not defined at HTMLButtonElement. onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47483960/
我在html和js中有一个测验代码。测验有10个问题,应该有在两个问题之间移动的按钮。 第一个问题工作正常,但是当我尝试回答第二个问题时,我在控制台中收到此错误: Game.html:1未捕获的Ref
这个问题在这里已经有了答案: How do you enable a Rust "crate feature"? (1 个回答) 2年前关闭。 设法构建和运行 https://github.com/r
我想在单击删除按钮和编辑按钮时调用函数 DeleteRow 和 EditRow。 我还在我的 JavaScript 文件上创建了函数,但我收到了这个“未定义的错误函数错误”。 这里是 Ja
我正在使用以下代码玩 TypeScript 代码 Playground 。该代码对我来说似乎没问题,但它给出了错误 "Type HTMLButtonElement cannot be converte
我的按钮样式组件的 PropTypes 有以下代码 export type Props = { size?: 'small' | 'medium' | 'large', }; StyledButt
我看过其他此类问题,但没有一个能解决我的问题。我有这段 JavaScript 代码: var count1; for (count1 = 1; count1 ' + article.title + '
嗨,我得到对象 HTMLButtonElement由于var btn = document.createElement('button');这是正常行为但我怎样才能得到普通按钮作为图形而不是对象呢?即
我正在尝试使用 Flask 创建一个简单的网页,我正在 try catch 在 javascript 变量中的文本字段中编写的文本,然后在用户按下按钮时将其显示在控制台上。 这是代码 HTML
我正在使用 https://github.com/bpmn-io/bpmn-js-example-custom-shapes .我想在 javascript (index.html) 中添加两个按钮点
这是一个非常奇怪的错误。 HTML 认为该函数未定义,我该如何解决?这是代码: Links function links(){document.location = ("links.html"
我正在尝试用 Angular 编写剪刀石头布游戏,但似乎无法让 onclick 播放方法发挥作用。 我听说这是一个范围界定问题,但似乎无法理解/将其应用到我所写的内容中。 这是我的html代码 这是
我是 Angular 新手,我遇到了这个错误: “openClose 未在 HTMLButtonElement.onclick (index:13) 处定义” 我搜索了所有可能的答案,但问题是错误出现
我正在尝试从数据库中编写可以被管理员删除的详细票证信息。我想使用 jquery ajax 在用户单击按钮后将其删除 我的代码是: ` BA2N29F Medan(KNO) Jakarta (CGK)
和这匹母马在一起...... 我有一个函数,可以为我的待办事项应用结果的每一页显示分页(1、2、3 等)按钮。 例如,如果您单击按钮 2,您将看到结果的第 2 页。这是完整的功能,按钮是通过模板文字插
我在单击按钮时遇到 js 函数问题。 Check In 我的 jQuery 函数是: var CheckIn; $(document).ready(function() { CheckIn =
我正在使用 ReactJS,并在名为 showData() 的方法中创建一个“删除”按钮,并将其附加到人员表中的一行。 我将其属性 onclick 设置为在方法 showData() 的同一类中实现的
我对 Javascript 还很陌生,目前正在研究它。但是,我实际上无法测试我的代码,因为出现以下错误: Uncaught TypeError: namecaller is not a functio
我一直在浏览器上收到此语法错误。我不确定我在这里错过了什么。 基本上,我试图向外部 Web API 发出请求,该 API 将一组选中的复选框值作为在查询参数中传递的参数。 这是我的 javascrip
我正在尝试使用 PHP、AJAX 和 MySql 开发一个简单的登录页面。经过长时间的斗争,我这样做了: function do_logi
下面是我一直在处理的索引页的 html。我想创建一个带有 onclick 函数的按钮来说“hello world”。所以我使用了页面底部的脚本,但是按钮触发了所描述的错误。 最令人困惑的部分是,该按钮
我是一名优秀的程序员,十分优秀!