我在自己的DIV中有以下内容
<script>
function newfunc()
{
alert("here");
}
</script>
<button type="button" onclick="newfunc()">Press me</button>
Run Code Online (Sandbox Code Playgroud)
在IE和FF上工作正常,但在Safari(至少Safari 4.0.5)上它说"ReferenceError无法找到变量" - 现在内容被动态加载到DIV中似乎Safari无法看到函数定义在这个DIV中 - 但是,如果我将该功能newfunc()放在主HTML页面上(即不在DIV中),那么按下按钮会调用该功能.
好像Safari没有看到已添加到DIV的Javascript函数.
任何帮助,将不胜感激.
亚当
每次复选框更改其值时,我都想调用Javascript函数.我对选择类型的输入做同样的事情,它工作得很好.两个输入都在一个表中.这是调用第一个函数的一个元素:
<td>
<select name="minuteEnd" id="minuteEnd" onChange="calculateWorkTime()">'.$dropDown_minuteEnd.'
</select>
</td>
Run Code Online (Sandbox Code Playgroud)
以及调用第二个函数的部分
<td>
<input type="checkbox" name="deleteShift" id="deleteShift" onChange="updateSubmitButton()" /><br />
<input type="checkbox" name="deleteShiftConfirm" id="deleteShiftConfirm" onChange="updateSubmitButton()" />.
</td>
Run Code Online (Sandbox Code Playgroud)
然后我在单独的脚本标签中定义了这两个函数,但我也尝试在一个中定义它们,但没有解决问题.因为我并不总是需要它们,所以我为每个函数调用一个PHP函数.这些PHP函数是
drawScriptCalculateWorkTime();
drawScriptUpdateSubmitbutton();
Run Code Online (Sandbox Code Playgroud)
实际的Javascript代码是这样的:
function drawScriptCalculateWorkTime()
{
echo'
<script>
function calculateWorkTime()
{
//I work (My name can be found)
}
</script>
';
}
function drawScriptUpdateSubmitbutton()
{
echo'
<script>
function updateSubmitButton()
{
//I do not work. I get the error: ReferenceError: updateSubmitButton is not defined
//This is my code
var delete = document.getElementById("deleteShift").checked;
var deleteConfirm = document.getElementById("deleteShiftConfirm").checked; …Run Code Online (Sandbox Code Playgroud) 我正在尝试包含一个ejs文件,该文件包含用于设置视图的功能。这些功能被定义为可以使用的助手。我试过使用:
<% include helpers.ejs %>
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用此文件中的函数时:
<% module_start('$body', [{name:'display',value:'block'}], 'body'); %>
Run Code Online (Sandbox Code Playgroud)
我得到错误:
Reference Error: module_start is not defined
Run Code Online (Sandbox Code Playgroud)
当我将代码从“ helpers.ejs”复制到我的原始视图文件“ test.ejs”时,它可以正常工作。我经历了几个答案,但仍然感到困惑,在这种情况下我做错了什么。
感谢您的帮助。
var g = {
lang: "ttt",
l: function(){
console.log(lang);
}
}
console.log(g.l());
Run Code Online (Sandbox Code Playgroud)
ReferenceError:未定义lang
为什么lang未定义?
我正在尝试使用此框架在 Node.js 中为 Twitch 构建一个简单的 IRC 机器人https://github.com/Schmoopiie/twitch-irc,它可以连接到 API 并检查某些事情,在本参考中,我将检查机器人所在的当前频道上的关注者。除了我遇到错误之外,我一直在下面记录此错误。
[31mcrash[39m: ReferenceError: $ is not defined
at client.<anonymous> (C:\Users\Exuviax\Desktop\node.js\bot.js:157:9)
at client.emit (events.js:117:20)
at C:\Users\Exuviax\Desktop\node.js\node_modules\twitch-irc\library\client.js:657:30
at Object.createChannelUserData (C:\Users\Exuviax\Desktop\node.js\node_modules\twitch-irc\library\data.js:56:2)
at client._handleMessage (C:\Users\Exuviax\Desktop\node.js\node_modules\twitch-irc\library\client.js:651:22)
at Stream.emit (events.js:95:17)
at drain (C:\Users\Exuviax\Desktop\node.js\node_modules\twitch-irc\node_modules\irc-message-stream\node_modules\through\index.js:36:16)
at Stream.stream.queue.stream.push (C:\Users\Exuviax\Desktop\node.js\node_modules\twitch-irc\node_modules\irc-message-stream\node_modules\through\index.js:45:5)
at LineStream.<anonymous> (C:\Users\Exuviax\Desktop\node.js\node_modules\twitch-irc\node_modules\irc-message-stream\index.js:22:16)
at LineStream.emit (events.js:95:17)
Run Code Online (Sandbox Code Playgroud)
这是我用来运行的代码,以检查 API
var irc = require('twitch-irc');
var colors = require('colors');
var jQuery = require('jQuery')
var jsdom = require("jsdom");
var window = jsdom.jsdom().parentWindow;
jsdom.jQueryify(window, "http://code.jquery.com/jquery-2.1.3.min.js", function () {
var $ = window.$;
$("body").prepend("<h1>The title</h1>");
console.log($("h1").html()); …Run Code Online (Sandbox Code Playgroud) 我正在 Google Apps Script 中编写一个函数,似乎我需要解决的最后一个错误是当我调用我的函数时 Google 表格中的“引用不存在”错误。我不知道该怎么办,因为我的代码似乎没有问题。
这就是我的代码现在的样子。它不完整,因为我需要为用户输入更改它,但这是一个测试。
在谷歌表格单元格中,我输入 =sortingtesting()
function sortingtesting()
{
var pInfo1 = ['a','b','c','d','e','f','g','h','i','j','k','l','m','o','p','q','r','s']
var pInfo2 = ['a','b','c','d','e','f','g','h','i','j','k','l','m','o','p','q','r','s']
var pInfo3 = ['a','b','c','d','e','f','g','h','i','j','k','l','m','o','p','q','r','s']
var pWO = ['1','','','2','','','3','4','5','6','7','','','8','','','9','10']
var pSearch = ['c', 'b', 'a']
var WO = [];
var Info1 = [];
var Info2 = [];
var Info3 = [];
var Search = [];
for(var i = 0; i < 18; i++)
WO[i] = pWO[i];
for(var i = 0; i < 18; i++)
{
Info1[i] = pInfo1[i];
}
for(var …Run Code Online (Sandbox Code Playgroud) google-sheets referenceerror google-apps-script google-sheets-custom-function
我最近开始学习QML(很久以前就尝试过),但是我一直坚持Qt C++代码与之交互的方式QML,反之亦然。
我有一个Counter具有以下标题:
#include <QObject>
#include <QTimer>
class Counter : public QObject
{
Q_OBJECT
Q_PROPERTY(int count
READ getCount
WRITE setCount
NOTIFY signalCountChanged)
public:
Counter(QObject *parent = Q_NULLPTR);
int getCount();
void setCount(int count);
signals:
void signalCountChanged(int);
public slots:
void slotStart();
private slots:
void slotTimeout();
private:
int count;
QTimer *timer;
};
Run Code Online (Sandbox Code Playgroud)
我main.cpp的如下:
#include <QtGui/QGuiApplication>
#include <QtQml/QQmlContext>
#include <QtGui/QGuiApplication>
#include <QtQuick/QQuickItem>
#include <QtQuick/QQuickView>
#include "counter.h"
int main(int argc, char *argv[])
{
QGuiApplication app(argc, …Run Code Online (Sandbox Code Playgroud) 我是JS的新手,之前从未尝试过Handlebars.我正在尝试一个教程中的一个非常简单的例子.我已经handlebars-v4.0.5.js从Handlebars网站下载并将其包含在我的页面中,如下所示,以及我预编译的模板name-table.js.我正在努力完成本教程,但我不能,因为当我运行以下代码时,我得到ReferenceError: Handlebars is not defined了我不能理解的生活,如果我从Handebars自己的网站下载的文件无论如何都是有效的.
<html>
<head>
<meta charset='UTF-8'>
<title>Test Page!</title>
<script type='text/javascript'>
function init() {
document.getElementById('button').addEventListener('click', buttonClick, false);
}
function buttonClick() {
var injection = Handlebars.templates['name-table'];
document.getElementById('button').innerHTML = injection;
console.log('hello, world.');
}
window.addEventListener('load', init, false);
</script>
</head>
<body>
<button id='button'>Button</button>
<div id='content'></div>
<script type='text/javascript' rel='js/handlebars-v4.0.5.js'></script>
<script type='text/javascript' rel='js/name-table.js'></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
编辑:
我标记的答案解决了问题. 此代码中出现了另一个错误,我想让任何阅读此内容的人知道var injection此代码中定义的是函数,而不是我想到的字符串.如果rel更改src为给出的答案,并且如果我们使用document.getElementById('button').innerHTML = injection();(注意parens),此代码将起作用.
在阅读PluralSight 教程时,据称语法错误会阻止执行前面的行。2();并2 = 3;都作为例子给出。
但在 Chrome 的控制台中测试此行为后,仅2 = 3;阻止了之前的行的执行。
2();这是(我正在使用Shift+Enter)的输出:
console.log("foo 1");
2();
console.log("foo 2");
VM224:1 foo 1
VM224:2 Uncaught TypeError: 2 is not a function
at <anonymous>:2:2
Run Code Online (Sandbox Code Playgroud)
这是为了2 = 3;
console.log("foo 1");
2 = 3;
console.log("foo 2");
VM202:2 Uncaught ReferenceError: Invalid left-hand side in assignment
Run Code Online (Sandbox Code Playgroud)
如您所见,第一行被执行2();并foo 1打印出来。但对于2 = 3;,则没有打印任何内容。
那么,为什么一种类型的错误会阻止打印和执行先前的代码,而另一种则不会,并且这种错误与浏览器有关?
我在 JavaScript 代码中使用 Web Worker,我使用 Worker 的类如下所示:
class EnemyMoveCalculater {
constructor() {
this.worker = null;
}
startMoveCalculation(boardData, nextPlayer, jokerReady, enemyMoveHandlerCallback) {
this.worker = new Worker('js/calculateEnemyMoves.js');
this.worker.onmessage = function(e) {
this.worker.terminate();
this.worker = null;
enemyMoveHandlerCallback(e.data);
}.bind(this);
this.worker.postMessage([boardData, nextPlayer, jokerReady]);
}
terminateMoveCalculation() {
if (this.worker) this.worker.terminate();
}
}
Run Code Online (Sandbox Code Playgroud)
我的网站可在 Firefox(适用于 Windows 和 Android)、Edge 和 Samsung 互联网浏览器中运行。但是,当“startMoveCalculation”在 Safari(版本 12.1.2)中运行时,我收到以下错误:
ReferenceError: Can't find variable: Worker
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?
referenceerror ×10
javascript ×8
safari ×2
c++ ×1
ejs ×1
function ×1
google-sheets-custom-function ×1
jquery ×1
node.js ×1
php ×1
qml ×1
qt ×1
syntax-error ×1
typeerror ×1
variables ×1