Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onclick调用函数不';好像不行_Javascript_Html - Fatal编程技术网

Javascript onclick调用函数不';好像不行

Javascript onclick调用函数不';好像不行,javascript,html,Javascript,Html,我有我的文本区域,当它被点击时,我希望文本被清除 <textarea id="cow" rows="5" name="message" cols="50" onfocus="clear()" >Please provide a link to an image no wider than 500px. </textarea> 我意识到我可能会使用Jquery,但我只是在尝试学习javascript 信不信由你,除了将函数命名为clear之外,你的代码还可以 在内联事件处

我有我的文本区域,当它被点击时,我希望文本被清除

<textarea id="cow" rows="5" name="message" cols="50" onfocus="clear()" >Please provide a link to an image no wider than 500px. </textarea>

我意识到我可能会使用Jquery,但我只是在尝试学习javascript

信不信由你,除了将函数命名为clear之外,你的代码还可以

在内联事件处理程序中,在某些浏览器中,
文档
对象连接到事件处理程序的作用域链中。这会产生一种不幸的效果,即
clear
不是指您的函数,而是指。此行为未标准化,因此根据您使用的浏览器,您可能会看到不同的结果

如果您重命名您的函数,它工作正常:



您一定应该阅读“”,其中我还解释了如何避免这种情况。

似乎浏览器试图调用
文档。清除
而不是您创建的清除函数。如果您将函数重命名为
clearText
,它可以正常工作

避免该问题的一个好方法是完全避免属性中的JS

<textarea id="cow" rows="5" name="message" cols="50">Please provide a link to an image no wider than 500px. </textarea>

// There are better ways, but this is the simplest crossbrowser way
document.getElementById("cow").onfocus = function() {
    this.value = '';
}
请提供不超过500px的图像链接。
//有更好的方法,但这是最简单的交叉方式
document.getElementById(“cow”).onfocus=function(){
这个值=“”;
}

您的结束标记真的是这样的,还是复制粘贴错误?另外,尝试实际使用onclick而不是onfocus@LifeInTheGreyJacobM在编辑中对它进行了修改。如果你想学习JavaScript。即使您在这里编写的最小代码也已经构建得很糟糕。我在处理程序中测试了
document.clear===clear
。你能解释一下“文档对象连接到事件处理程序的作用域”是什么意思吗?作用域是
这个
元素,对吗?但是在处理程序中没有使用
this
。这就像在处理程序的周围有一个隐藏的
和(document){}
,不,有“scope”我指的是函数中可以访问的所有变量<代码>此
不是范围<代码>此
只是
:)就像
窗口
是函数作用域链(全局变量)的一部分一样,
文档
位于内联事件处理程序的作用域链内。这就是我要求澄清的原因;然而,许多人把
这个
称为函数的
范围
(这并不正确)。我现在确实明白了,您正在谈论范围链(这是一个
和(document){}
一起做的),感谢您仔细研究过的答案!我总是想知道任何答案背后的原因。谢谢你解决了我的问题,费利克多。尽管我自己也试过,但它们都对我有用!我对JavaScript的唯一抱怨是浏览器之间的奇怪之处:-)我要研究一下,我打赌clear是一个名称空间中某个保留的单词。@defaultNINJA:看看我的答案和我链接到的问题。@defaultNINJA是的,链接的答案解释得很好
<textarea id="cow" rows="5" name="message" cols="50">Please provide a link to an image no wider than 500px. </textarea>

// There are better ways, but this is the simplest crossbrowser way
document.getElementById("cow").onfocus = function() {
    this.value = '';
}