Javascript 选择格式在浏览器中不起作用,而在 dreamweaver 中它确实如此
Javascript Selected Formatting not working in browser while in dreamweaver it does
我在这个脚本上遇到了一些问题。它应该将 html 标记添加到文本框中的选定文本区域。在 dreamweaver 中实时观看时,它工作得很好。正是它应该的样子。在浏览器中,它什么都不做。
有什么想法吗?
该函数使用 onclick="formatText(content,'b')"
调用。
function formatText(el, tag) {
var selectedText = document.selection ? document.selection.createRange().text
: el.value.substring(el.selectionStart, el.selectionEnd);
alert(selectedText);
if (selectedText != '') {
var newText = '<' + tag + '>' + selectedText + '</' + tag + '>';
el.value = el.value.replace(selectedText, newText);
document.getElementById(el).focus();
} else {
if (document.getElementById(tag).value == "0") {
document.getElementById(tag).value = "1";
document.getElementById(el).value = document.getElementById(el).value
+ "<" + tag + ">";
document.getElementById(el).focus();
} else {
document.getElementById(tag).value = "0";
document.getElementById(el).value = document.getElementById(el).value
+ "</" + tag + ">";
document.getElementById(el).focus();
}
}
}
您可能想考虑使用jQuery,它具有内置的功能来执行您要做的大多数事情。值得你花时间学习。( 见 http://jquery.com/)
话虽如此,我编辑了一些你的代码。您需要将"onclick"事件更改为"onmousedown",将其保留为"onclick"将删除您选择的文本焦点,并且您的方法将不起作用。我不确定你的 else 语句应该做什么,所以我根本没有更新它。希望这对某些人有所帮助。
干杯。
<script type="text/javascript">
function formatText( el , tag )
{
var selectedText = "" + document.getSelection();
if ( selectedText.length > 0 )
{
var textWithTag = "<" + tag + ">" + selectedText + "</" + tag + ">";
el.innerHTML = el.innerHTML.replace( selectedText , textWithTag );
}
}
</script>
<div id="test">Something</div>
<div onmousedown='formatText( document.getElementById("test") , "span style='"color:red'"" );'>Click</div>
相关文章:
- 为什么jquery悬停在jsfiddle中可以工作,而在我的html布局中却不能
- 为什么jQuery代码段在没有IFrame的情况下可以工作,而在有IFrame时却不能工作
- 尝试在两次迭代中警告同一选择器的值,在第一次迭代中得到正确的值,而在第二次迭代中获得不正确的值.为什么?
- parseJSON在一种情况下有效,而在另一种情况中无效
- @媒体查询在桌面浏览器中有效,而在移动浏览器中无效
- 为什么form.submit()在使用jQuery时有效,而在使用普通JS时无效
- Ajax load在chrome中不起作用,而在Fire fox中工作
- 为什么setTimeout在Chrome中触发两次,而在IE或Firefox中却没有
- 是否可以在Kendo网格中只显示来自Kendo数据源的某些字段,而在“;添加“;弹出窗口
- 为什么这些代码在我的测试服务器上有效,而在jsfiddle上无效
- 按钮(禁用=错误)条件;在某些情况下有效,而在其他情况下无效
- 如何在输入框中只显示名称,而在选择元素的下拉列表中显示名称和数字
- 为什么这个表达式在 Firefox/Chrome 中返回 true,而在 IE 中返回 false
- 为什么传入的参数在一个地方有效,而在另一个地方不起作用
- 消息在 Chrome 和 IE 中不显示,而在 Firefox 中工作
- 为什么鼠标滚轮在Chrome中工作,而在Firefox中不起作用
- 如何修复由于在java脚本中使用eval()而在强化扫描中的动态代码评估问题
- Async.而 async.而 在 async.series 中
- 您可以使用jquery在一个下拉列表中获取所选值,而在另一个下拉列表的javascript函数中
- Javascript 选择格式在浏览器中不起作用,而在 dreamweaver 中它确实如此