簡體   English   中英

Javascript 選定格式在瀏覽器中不起作用,而在 Dreamweaver 中卻起作用

[英]Javascript Selected Formatting not working in browser while in dreamweaver it does

我在使用這個腳本時遇到了一些問題。 應該將 html 標簽添加到文本框中的選定文本區域。 在 Dreamweaver 中實時查看時,它工作得很好。 正是它應該如何。 在瀏覽器中它什么都不做。

有什么想法嗎?

使用onclick="formatText(content,'b')"調用 function。

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 = "&lt;" + tag + "&gt;" + selectedText + "&lt;/" + tag + "&gt;";
        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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM