如果文本中有任何格式,为什么此功能会失败? [在 IE8 中]

发布于 2024-12-18 03:38:10 字数 621 浏览 0 评论 0原文

我正在使用下面的方法在网页中搜索字符串。它匹配纯文本;但是,它在以下上下文中失败:

 <span>I</span> am searching for <b>text</b>

如果我搜索“正在搜索”,它将匹配。但是,如果我搜索“我正在搜索”,它将不匹配。下面是我正在使用的代码:

function search(text)
{
    if (document.body.createTextRange) 
    {
        var textRange = document.body.createTextRange();
        while (textRange.findText(text)) 
        {
            textRange.execCommand("BackColor", false, "yellow");
            textRange.collapse(false);
        }
    }
}

这是小提琴。 它在 IE8 中不起作用。 谢谢

I am using the method below to search for a string in a web page. It matches plain text; but, it fails in the following context:

 <span>I</span> am searching for <b>text</b>

If I search for "am searching" it will match.. But if I search for "I am searching" it does not match. Below is the code I am using:

function search(text)
{
    if (document.body.createTextRange) 
    {
        var textRange = document.body.createTextRange();
        while (textRange.findText(text)) 
        {
            textRange.execCommand("BackColor", false, "yellow");
            textRange.collapse(false);
        }
    }
}

here is the fiddle. It is not working in IE8.
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

与君绝 2024-12-25 03:38:10
<script type="text/javascript">
function findText(text) {
    $('*:contains('+text+')').css('background-color', 'Yellow');
});
</script>

<script type="text/javascript">
function findText(textBoxOrHtmlTagId, text) {
    $('#'+textBoxOrHtmlTagId+':contains('+text+')').css('background-color', 'Yellow');
});
$(document).ready(function(){
    $('#yourid').live('keydown', findText('yourid', $('#yourid').text());
});
</script>

应该有效:简而言之,使用jquery

<script type="text/javascript">
function findText(text) {
    $('*:contains('+text+')').css('background-color', 'Yellow');
});
</script>

<script type="text/javascript">
function findText(textBoxOrHtmlTagId, text) {
    $('#'+textBoxOrHtmlTagId+':contains('+text+')').css('background-color', 'Yellow');
});
$(document).ready(function(){
    $('#yourid').live('keydown', findText('yourid', $('#yourid').text());
});
</script>

Should work: in short use jquery

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文