这里我试图调用锚标记的javascript函数onclick。当我调用函数onclick时,什么也没发生..
我甚至在我的javascript函数中都有警报,甚至警报也没有发生。
这是我的代码:
document.writeln('<td><img class="rteImage" src="' + imagesPath + 'code.gif" width="25" height="24" alt="Code" title="Code" onClick="applyTag(document.getElementById("rte1"),"code")"></td>');
javascript函数:
function applyTag(obj, tag)
{
wrapText(obj, '<'+tag+'>', '</'+tag+'>');
alert("hello 1");
};
function wrapText(obj, beginTag, endTag)
{
alert("hello 2");
if(typeof obj.selectionStart == 'number')
{
var start = obj.selectionStart;
var end = obj.selectionEnd;
obj.value = obj.value.substring(0, start) + beginTag + obj.value.substring(start, end) + endTag + obj.value.substring(end, obj.value.length);
}
else if(document.selection)
{
obj.focus();
var range = document.selection.createRange();
if(range.parentElement() != obj) return false;
if(typeof range.text == 'string')
document.selection.createRange().text = beginTag + range.text + endTag;
}
else
obj.value += text;
};
我该如何解决这个问题?
答案 0 :(得分:3)
您似乎在嵌套引号时遇到问题:
document.write('... onClick="applyTag(document.getElementById("rte1"),"code")"> ...')
解决这个问题的最简单方法可能是使用'
代替并转义它们(因为你使用单引号字符串生成它来记录文档。)
document.write('... onClick="applyTag(document.getElementById(\'rte1\'),\'code\')"> ...')
答案 1 :(得分:1)
如果您没有使用双引号,那么只要遇到第一个双引号,您的onclick语句就会结束,从而导致javascript错误。
所以不要这个
document.writeln('<td><img class="rteImage" src="' + imagesPath + 'code.gif" width="25" height="24" alt="Code" title="Code" onClick="applyTag(document.getElementById("rte1"),"code")"></td>');
你应该使用
document.writeln('<td><img class="rteImage" src="' + imagesPath + 'code.gif" width="25" height="24" alt="Code" title="Code" onClick="applyTag(document.getElementById(\'rte1\'),\'code\')"></td>');