客户端 JavaScript 没有定义 - 但它在 HTML 源代码中.任何人都知道为什么

A client-side JavaScript is not defined - but it is in the HTML source. Anybody know why?

本文关键字:任何人 源代码 为什么 HTML JavaScript 定义 客户端      更新时间:2023-09-26

>我在我的HTML源代码中定义了这个函数。它在<body>部分,但这应该没问题,对吧?这是它在源代码中的显示方式:

<script type="text/javascript">     
function updateL(widgetType, i) {
  var widgetParsName = "wpl:" + i; 
  if (widgetType == "youtube"){
   document.getElementById(widgetParsName).innerHTML = '<input type="text" size="30" value=""'>';
  }
  else {
   document.getElementById(widgetParsName).innerHTML = "";
  }
}
</script>

这应该在使用 onchange 的选择中调用:

<select id="wl:0" name="wl:0" onchange="updateL(this.value,0)">

我没有在这里包括整个<select>,因为这正在工作。当我选择一个选项时,该函数将被调用。然而什么也没发生。Chrome 中的 JavaScript 控制台仅报告:

"未捕获的引用错误:未定义更新L"

我很困惑为什么。脚本在那里。我相信将脚本放在 HTML 正文本身中是可以的。我以前做过。该页面是动态创建的,所以我不想将其放在<head>部分中,因为它会不必要地出现在网站的每个页面上。它只需要在这一个页面上。

知道我做错了什么愚蠢的事情吗?

谢谢

道格

... .innerHTML = '<input type="text" size="30" value=""'>';

这是一个语法错误(末尾有错误的引号)。因此,无法定义该函数,并且您的代码失败。

像下面这样更改代码...

document.getElementById(widgetParsName).innerHTML = '<input type="text" size="30" value=""/>';

问题只是上面代码中的另一个简单语法错误,涉及另一个杂散的引号。很抱歉打扰大家。它现在正在工作。非常感谢您的帮助。