- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试将 onClick 函数从图像复制到 span 对象。但我不明白。
我已经直接使用 onClick=img.onClick
、onClick=new Function(img.onClick)
等进行了尝试。
if (img.onclick != undefined)
{
var imgClick = img.onclick;
strNewHTML = strNewHTML + " onMouseOver=\"this.style.background"
+ "= '#cecece'\" onMouseOut=\"this.style.background = ''\" onclick=\""+imgClick+"\">";
}
谁能帮帮我?
谢谢!
最佳答案
span.onclick= img.onclick;
JavaScript 区分大小写,DOM 事件处理程序属性全部小写。
编辑:
if (img.onclick != undefined) {
strNewHTML = strNewHTML + " onMouseOver=\"this.style.background"
+ "= '#cecece'\" onMouseOut=\"this.style.background = ''\" onclick=\""+imgClick+"\">";
}
那是完全不同的事情。您正在创建一个 HTML 字符串。但是 onclick
DOM 属性包含一个 function
目的。 function
对象不能添加到字符串中。 (如果您调用 somefunction.toString()
,它们会转换为您所得到的,这不是可以用作事件处理程序的东西。)
如果您想获取 onclick
的文本值要添加到 HTML 中的属性,您必须使用 span.getAttribute('onclick')
来完成方法。 但是由于 getAttribute
实现中的错误,这在 IE 中不起作用, 所以你必须求助于 span.getAttributeNode('onclick').value
.然后,当您将它添加到 HTML 字符串中时,您必须对它进行 HTML 转义,以便任何 <
, &
和 "
其中的字符显示为 <
等等,否则它们会破坏标记。
但是,这真的很难看; 不要这样做。实际上,HTML 字符串转换总是很糟糕。尤其是当您在 JavaScript 字符串中的 HTML 中包含 JavaScript 代码时。转义规则变得疯狂,如果您在转义来自用户输入的内容时犯了错误,您就会给自己一个跨站点脚本安全漏洞。
相反,使用 DOM 方法。这消除了等式中的所有转义,而且它通常比拼凑在一起的 HTML 标记字符串更具可读性。然后你可以自由分配onclick
到你喜欢的任何功能。例如:
var span= document.createElement('span');
if (img.onclick)
span.onclick= img.onclick;
span.onmouseover= function() {
this.style.background= '#CECECE';
};
span.onmouseout= function() {
this.style.background= '';
};
someparentelement.appendChild(span);
还可以考虑用简单的 CSS 替换鼠标悬停/鼠标悬停 :hover
规则,为了可维护性。唯一仍然需要 :hover
帮助的浏览器是IE6。
关于javascript - 读出 JavaScript onClick 函数体并将其用于另一个 onClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234825/
为什么 naam 输出(NULL)? (抱歉,我知道这是基本的东西,但我是 plist 的新手) 这是plist: 方法如下: - (id) init { self = [super init]; i
我正在使用这个问题的答案中描述的方法向帧缓冲区对象绘制笔触: opengl - blending with previous contents of framebuffer 此方法正确 alpha -
我想将 xml 文件读出到文本 block 中,用户可以在文本 block 中编辑此文本并将附加更改应用回 xml 文件...我目前被卡住了。这是我到目前为止所做的: private void
我需要从我的网络应用程序中的任何 Controller 读出所有可用的操作。这样做的原因是一个授权系统,我需要为用户提供一个允许操作的列表。 例如。: 用户 xyz 具有执行显示、列表、搜索操作的权限
我有一个包含城市区域的 KML 文件,并想用 Javascript 将其读出,以便在 map 上显示这些叠加层(多边形)(Google Maps API v.3)此外,我想从 KML 文件中保存 Ge
我尝试将 onClick 函数从图像复制到 span 对象。但我不明白。 我已经直接使用 onClick=img.onClick、onClick=new Function(img.onClick) 等
我正在考虑使用 Javascript 自动将 border-radius、transform、box-shadow 等 CSS3 属性转换为它们的浏览器特定对应物。 我做了一些研究,发现您可以迭代通过
我有一个关于从 XML 文件读取的问题。 我的 XML 文件: 我的代码: rapidxml::xml_document<> doc; r
我正在为 dwm 构建一个状态栏,我想通过终端读出未读邮件数(使用 grep、sed 或 fopen 作为文件)并通过 fopen/popen 获取它。 我使用的是 ubuntu/dwm/thunde
我尝试用 C# 读出 WMI 数据。我使用 System.Management 命名空间。对于大多数 WMI 查询,它工作得很好。但是,当我尝试从 Win32_PerfFormattedData_Tc
我想使用 Blender 本身的脚本模式读出 Blender 对象的自定义属性。到目前为止,我发现只能读出您在脚本模式下自己创建的自定义属性。但是我想读出我自己标记的自定义属性。这意味着我没有要使用的
我正在尝试读出包含如下数据的文本文件: 1 1 34.5 12.5 1 2 65.3 23.6 1 3 94.3 12.3 依此类推,两个整数后跟两个坐标,冲洗并重复。我使用这段代码(我真的不太懂编程
我想知道如何读出 mp3 歌曲的持续时间。如果我是对的,它不是 ID3 标签,所以我想我必须以某种方式计算它?对于其余的 ID3 标签,我正在使用这个库: http://javamusictag.so
在 iOS 中使用 VoiceOver,当查看分段 Controller 之类的东西时,VoiceOver 会读取分段及其索引,即“已选择:某事:4 之 2”。 我有一个包含几个按钮的自定义 UIVi
我正在尝试从 Microsoft EDGE 浏览器读出标题和 URL。最好使用 System.Windows.Automation 来执行此操作,因为代码库已经使用它来解决其他问题。 可以通过 Sys
从顶部滚动 473 像素后,我有一个显示/隐藏菜单栏。现在我想通了,在其他页面上我需要以不同的 px 偏移量显示/隐藏它(例如,因为顶部的图片更大)。 所以理论上,当我滚动“ anchor ”时,jQ
我是一名优秀的程序员,十分优秀!