If true return 一个字符串 else return 另一个字符串
If true return a string else return another string
代码包含错误:未捕获的语法错误:未定义的意外标记 'if':18:22
上传到 greasyfork 时出现错误。
javascript 文件是:
// ==UserScript==
// @name Docubuilder
// @namespace Editors
// @match *://*
// @grant none
// @version 1.0
// @author Josiah
// @description Josiah's Docubuilder builds anything on the current document. This also works on HTML files!
// ==/UserScript==
console.log("Starting to make builder's button so hang on!")
function buildermain() {
tobuild = prompt("Insert any valid HTML element, cancel or input nothing and a tab will open with a list of HTML elements.")
if (tobuild == '' || tobuild == null) {
window.open("https://developer.mozilla.org/en-US/docs/Web/HTML/Element")
} else {
mynew = document.createElement(tobuild)
myhtml = prompt("Text to display...")
mynew.innerHTML = if (!(myhtml == null)) { return myhtml } else { return 'A random ' + tobuild + '.'}
document.body.insertBefore(mynew, null)
alert("Done! Check the bottom of the page!")
}
}
const builderbutton = document.createElement('button')
builderbutton.onClick = "buildermain()"
builderbutton.innerHTML = "Start building some stuff!"
document.body.insertBefore(builderbutton, document.body.firstChild)
也许是 if,所以我试图找到一种方法来 return 一个字符串到一行中的一个变量。
这里有什么帮助吗?
条件(三元)运算符可能有帮助:mynew.innerHTML = (!(myhtml == null)) ? myhtml : 'A random ' + tobuild + '.';
问题是 if() 没有 return 值。它不会为 属性 innerHTML
.
赋值
有一些选项可以解决这个问题。
创建函数
function buildermain() {
// [...]
mynew.innerHTML = getHtml(myhtml, tobuild);
// [...]
}
const getHtml = (myhtml, tobuild) => {
if (myhtml !== null) {
return myhtml;
}
return `A random ${tobuild}.`;
}
使用三元运算符
function buildermain() {
// [...]
mynew.innerHTML = myhtml !== null ? myhtml : `A random ${tobuild}.`;
// [...]
}
使用 if、else(正确)而不直接赋值给 innerHtml
function buildermain() {
// [...]
if (myhtml !== null) {
mynew.innerHTML = myhtml;
} else {
mynew.innerHTML = `A random ${tobuild}.`;
}
// [...]
}
代码包含错误:未捕获的语法错误:未定义的意外标记 'if':18:22
上传到 greasyfork 时出现错误。 javascript 文件是:
// ==UserScript==
// @name Docubuilder
// @namespace Editors
// @match *://*
// @grant none
// @version 1.0
// @author Josiah
// @description Josiah's Docubuilder builds anything on the current document. This also works on HTML files!
// ==/UserScript==
console.log("Starting to make builder's button so hang on!")
function buildermain() {
tobuild = prompt("Insert any valid HTML element, cancel or input nothing and a tab will open with a list of HTML elements.")
if (tobuild == '' || tobuild == null) {
window.open("https://developer.mozilla.org/en-US/docs/Web/HTML/Element")
} else {
mynew = document.createElement(tobuild)
myhtml = prompt("Text to display...")
mynew.innerHTML = if (!(myhtml == null)) { return myhtml } else { return 'A random ' + tobuild + '.'}
document.body.insertBefore(mynew, null)
alert("Done! Check the bottom of the page!")
}
}
const builderbutton = document.createElement('button')
builderbutton.onClick = "buildermain()"
builderbutton.innerHTML = "Start building some stuff!"
document.body.insertBefore(builderbutton, document.body.firstChild)
这里有什么帮助吗?
条件(三元)运算符可能有帮助:mynew.innerHTML = (!(myhtml == null)) ? myhtml : 'A random ' + tobuild + '.';
问题是 if() 没有 return 值。它不会为 属性 innerHTML
.
有一些选项可以解决这个问题。
创建函数
function buildermain() { // [...] mynew.innerHTML = getHtml(myhtml, tobuild); // [...] } const getHtml = (myhtml, tobuild) => { if (myhtml !== null) { return myhtml; } return `A random ${tobuild}.`; }
使用三元运算符
function buildermain() { // [...] mynew.innerHTML = myhtml !== null ? myhtml : `A random ${tobuild}.`; // [...] }
使用 if、else(正确)而不直接赋值给
innerHtml
function buildermain() { // [...] if (myhtml !== null) { mynew.innerHTML = myhtml; } else { mynew.innerHTML = `A random ${tobuild}.`; } // [...] }