document.createElement 参数不可以是变量?

MOOD 2015-06-09 08:54:40
<div>浏览器识别:<span id="info">...</span></div>
<div id="a">loreamloreamloreamloreamloreamloream,loreamloreamloream,loreamloreamloream,loreamloreamloreamloream</div>
<script>
function replaceToH(hh) {

if (document.selection) {//IE
document.getElementById("info").innerHTML="IE";
var z = document.selection.createRange();
var t = z.text;
var v = z.htmlText;

z.select();
z.pasteHTML("<h1>"+v+"</h1>");
} else {//FF
var h="h3";//无论用函数参数,还是在这加个变量作测试
document.getElementById("info").innerHTML="FF";
var z = window.getSelection().getRangeAt(0);
var t = z.toString();
var temp = document.createElement(h);//结果没效果,非得在这直接写上标签名才行,三大浏览器都测试过
//temp.href="#";
temp.innerHTML = t;

z.deleteContents();
z.insertNode(temp);
}
}

document.onmouseup = replaceToH("h1");
</script>


在网上找的代码,改成用变量,结果没效果
...全文
278 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
MOOD 2015-06-10
  • 打赏
  • 举报
回复
引用 10 楼 hch126163 的回复:
var h="h1"; document.createElement(h); 肯定没问题 document.onmouseup =function(){ replaceToH("h1");}; 自己单步调试一下
谢谢~刚自己也发现了错误了,
MOOD 2015-06-10
  • 打赏
  • 举报
回复
是语法错误了。 <div>浏览器识别:<span id="info">...</span></div> <div id="a">loreamloreamloreamloreamloreamloream,loreamloreamloream,loreamloreamloream,loreamloreamloreamloream</div> <script> function replaceToH(h) { if (document.selection) {//IE document.getElementById("info").innerHTML="IE"; var z = document.selection.createRange(); var t = z.text; var v = z.htmlText; z.select(); z.pasteHTML("<h1>"+v+"</h1>"); } else {//FF document.getElementById("info").innerHTML="FF "+h; var z = window.getSelection().getRangeAt(0); var t = z.toString(); var temp = document.createElement(h); //temp.href="#"; temp.innerHTML = t; z.deleteContents(); z.insertNode(temp); } } function aa(){ replaceToH("h1"); } document.onmouseup = aa; </script>
hch126163 2015-06-10
  • 打赏
  • 举报
回复
var h="h1"; document.createElement(h); 肯定没问题 document.onmouseup =function(){ replaceToH("h1");}; 自己单步调试一下
香蕉猪 2015-06-09
  • 打赏
  • 举报
回复
引用 2 楼 MOOD 的回复:
[quote=引用 1 楼 gy127132060 的回复:] 虽然不知道楼主想干嘛,但我知道,无论IE、Chrome,,document.selection都获取不到,统统为undefined.... 并且,任意一个浏览器在var z = window.getSelection().getRangeAt(0);都获取不到东西。。。。 楼主能解释下,到底想干嘛吗。。。
可以获取到的,功能是选中文字后自动添加HTML标签包围它。[/quote]那看来是楼主没有把代码贴全,那么本人就凭感觉说说自己的看法。。。 createElement的普遍用法是在没有内容的情况下,在空白处添加开始与结束标签,然后一层层向内部添加数据。 楼主想要对选定内容进行父标签添加,,,本人主张采用替换方式,,现将内容取出。再将添加了标签的内容替换掉原页面的内容。。。
打字员 2015-06-09
  • 打赏
  • 举报
回复
是綁定方法,不是調用

document.onmouseup = replaceToH;
MOOD 2015-06-09
  • 打赏
  • 举报
回复
引用 1 楼 gy127132060 的回复:
虽然不知道楼主想干嘛,但我知道,无论IE、Chrome,,document.selection都获取不到,统统为undefined.... 并且,任意一个浏览器在var z = window.getSelection().getRangeAt(0);都获取不到东西。。。。 楼主能解释下,到底想干嘛吗。。。
可以获取到的,功能是选中文字后自动添加HTML标签包围它。
香蕉猪 2015-06-09
  • 打赏
  • 举报
回复
虽然不知道楼主想干嘛,但我知道,无论IE、Chrome,,document.selection都获取不到,统统为undefined.... 并且,任意一个浏览器在var z = window.getSelection().getRangeAt(0);都获取不到东西。。。。 楼主能解释下,到底想干嘛吗。。。
MOOD 2015-06-09
  • 打赏
  • 举报
回复
引用 8 楼 danica7773 的回复:
document.onmouseup = replaceToH("h1"); 不知所云,這能得到撒?
不加参数,在内部给变量赋值也一样不行
打字员 2015-06-09
  • 打赏
  • 举报
回复
document.onmouseup = replaceToH("h1"); 不知所云,這能得到撒?
MOOD 2015-06-09
  • 打赏
  • 举报
回复
引用 5 楼 jsynzzp 的回复:
var temp = document.createElement(''+h+'');
此方法无效啊
MOOD 2015-06-09
  • 打赏
  • 举报
回复
引用 4 楼 gy127132060 的回复:
[quote=引用 2 楼 MOOD 的回复:] [quote=引用 1 楼 gy127132060 的回复:] 虽然不知道楼主想干嘛,但我知道,无论IE、Chrome,,document.selection都获取不到,统统为undefined.... 并且,任意一个浏览器在var z = window.getSelection().getRangeAt(0);都获取不到东西。。。。 楼主能解释下,到底想干嘛吗。。。
可以获取到的,功能是选中文字后自动添加HTML标签包围它。[/quote]那看来是楼主没有把代码贴全,那么本人就凭感觉说说自己的看法。。。 createElement的普遍用法是在没有内容的情况下,在空白处添加开始与结束标签,然后一层层向内部添加数据。 楼主想要对选定内容进行父标签添加,,,本人主张采用替换方式,,现将内容取出。再将添加了标签的内容替换掉原页面的内容。。。[/quote] 对啊,就是替换,函数名称就是替换到H
-妖孽 2015-06-09
  • 打赏
  • 举报
回复
var temp = document.createElement(''+h+'');

87,963

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧