Javascript 控制+;F类似的文本搜索框嵌入到iframe的网站中

Javascript 控制+;F类似的文本搜索框嵌入到iframe的网站中,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,所以我在我的网站上有一个很长的iframe,里面充满了文字Iframe来自我不拥有的其他域,因此我无法控制此嵌入式Iframe。当我要搜索此Iframe中的一部分文本时,我要做的是单击CTRL+F,它将找到所需的文本并跳到该部分Iframe上 只要我只为自己使用这个页面,就可以了。现在很多人都在访问这个iframe,我无法向所有人解释CTRL+F的功能。所以我想在这个页面中嵌入一个文本搜索,iframe就是这样,人们就可以更容易地找到他们想要的东西 我在这个网站上尝试了很多建议,但是它们不能真正

所以我在我的网站上有一个很长的iframe,里面充满了文字Iframe来自我不拥有的其他域,因此我无法控制此嵌入式Iframe。当我要搜索此Iframe中的一部分文本时,我要做的是单击CTRL+F,它将找到所需的文本并跳到该部分Iframe上

只要我只为自己使用这个页面,就可以了。现在很多人都在访问这个iframe,我无法向所有人解释CTRL+F的功能。所以我想在这个页面中嵌入一个文本搜索,iframe就是这样,人们就可以更容易地找到他们想要的东西

我在这个网站上尝试了很多建议,但是它们不能真正使用iframe,因为它们在嵌入iframe的页面中搜索单词CTRL+F如何从iframe检测文本?是否可以在我的网站中嵌入相同的功能?


谢谢你

前几天只使用Javascript可能不是最有效的,因为它读取和重新写入内部html onkeyup(因此我不得不使用一些正则表达式来忽略标记),但是它工作正常,如果有任何改进,请快速通知我。 我试图将其放入代码笔中,但由于它与innerhtml兼容,因此无法工作,但这可能需要一段时间:

注意---id:matches是我搜索下的一个列表,告诉用户找到了多少个匹配项

<script>
    function Search(){
        //clear everyting
        document.getElementById("matches").innerHTML = "Type to find your car!";
        document.getElementById("main-content").innerHTML = document.getElementById("main-content").innerHTML.replace(/<span.+?>(.+?)<\/span>/g,'$1');
        if (document.getElementById("textbox").value !== ""){
            alert();


        //this regegex basically matches all pattern exept from when its inbetween < and >
        var searchterm = ("(?<!</?[^>]*|&[^;]*)(" + document.getElementById("textbox").value + ")");
        var regex = new RegExp(searchterm,"gi");
        w3.addClass('textarea', 'w3-border-red');
        //if there is no match then it breaks in this following line when i want it to return 0 rather than break
        var numberOfMatches = document.getElementById("main-content").innerHTML.match(regex).length;
        alert(numberOfMatches);
        alert("fdfd");
        document.getElementById("main-content").innerHTML = document.getElementById("main-content").innerHTML.replace(regex,'<span class="w3-aqua">$1</span>');

        document.getElementById("matches").innerHTML = numberOfMatches + " Matches highlighted scroll to see matches";
        if(numberOfMatches !== 0)
            w3.removeClass('textarea', 'w3-border-red');

        }
        else
            w3.addClass('textarea', 'w3-border-red');


    }
</script>

函数搜索(){
//清除一切
document.getElementById(“匹配”).innerHTML=“键入以查找您的汽车!”;
document.getElementById(“主要内容”).innerHTML=document.getElementById(“主要内容”).innerHTML.replace(/(.+?)/g,“$1”);
if(document.getElementById(“textbox”).value!=“”){
警惕();
//此正则表达式基本上匹配其中间值<和>
var searchterm=(“(?]*|和[^;]*)(“+document.getElementById”(“文本框”).value+”);
var regex=新的RegExp(搜索术语,“gi”);
addClass('textarea','w3 border red');
//如果没有匹配项,那么当我希望它返回0而不是中断时,它将在下面的这一行中断
var numberOfMatches=document.getElementById(“主要内容”).innerHTML.match(regex).length;
警报(匹配数);
警报(“fdfd”);
document.getElementById(“主要内容”).innerHTML=document.getElementById(“主要内容”).innerHTML.replace(regex,$1');
document.getElementById(“matches”).innerHTML=numberOfMatches+“突出显示的匹配项滚动查看匹配项”;
如果(numberOfMatches!==0)
removeClass('textarea','w3 border red');
}
其他的
addClass('textarea','w3 border red');
}