我试图获取与onclick事件对应的Javascript函数的源代码。 如果在onclick函数中有单引号('),我会收到错误。 以下是示例代码
<html>
<head>
<script language="JavaScript" type="text/javascript">
function selectedInputChange(input, mode, auth) {
}
function onClickToString() {
try {
document.getElementById('demo').innerHTML = document.getElementById('radioSelect').onclick.toString();
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
}
</script>
</head>
<body>
<h1>My First JavaScript</h1>
<input type="radio" id="radioSelect" onclick="selectedInputChange('Some input with ' in it')"/>
<button type="button" onclick="onClickToString()">Click Here</button>
<p id="demo"></p>
</body>
</html>
如果没有单引号存在,那么我获得了正确的输出,但如果有单引号我就会
无法读取属性&#39; toString&#39;未定义的
错误响应,即使有单引号,如何获取字符串?
修改 注意:我无法控制HTML内容,我只是在iframe中加载网页,这为我提供了上述HTML源代码。 因此,根据其中一条评论,这不是一个错字。
答案 0 :(得分:0)
此属性包含无效的JavaScript(其中包含语法错误的JavaScript):
UserClaimsPrincipalFactory
你需要一个包含单引号的反斜杠:
// JavaScript string ends here ---------------v
onclick="selectedInputChange('Some input with ' in it')"
// So this is a syntax error ------------------^^^^^^^^
有效:
onclick="selectedInputChange('Some input with \' in it')"
&#13;
function selectedInputChange() {
document.getElementById('demo').innerHTML = document.getElementById('radioSelect').onclick.toString();
}
&#13;
答案 1 :(得分:-1)
在这种情况下&#34; onclick&#34;不是对象,只是事件。 如果你想获得onclick的内部字符串值,你可以通过&#34; getAttribute&#34;。
document.getElementById('radioSelect').getAttribute("onclick");
关于getAttribute https://developer.mozilla.org/en/docs/Web/API/Element/getAttribute