我正在尝试使用网页内的文本框在 pdf 中搜索单词。我将 pdf 嵌入到 IFRAME 中,但它不起作用。此代码适用于普通文本。当我搜索单词时,有时它会打开 pdf 或刷新页面,而不是突出显示它。
<style>
span.highlight {
background: yellow
}
</style>
<input type="text" />
<div class="para">
<button onclick="getIframeText()">get iframe text</button>
<iframe id="myframe1" src="h.pdf" style="width:718px; height:700px;" frameborder="0"></iframe>
</div>
用于搜索文本的 JavaScript
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type='text/javascript'>
var $para = $('.para')
$("input").keyup(function() {
$para.find('span.highlight').contents().unwrap();
var mysearchword = this.value.trim();
if (mysearchword) {
var re = new RegExp('(' + mysearchword.trim().split(/\s+/).join('|') + ')', "gi");
$para.html(function(i, html) {
return html.replace(re, '<span class="highlight">$1</span>')
});
}
});
</script>
最佳答案
该代码不适用于 PDF。
将HTML中找到的单词替换为highlight
类,就可以了。但这对于 PDF 来说是不可能的。您需要先将 PDF 转换为 HTML。
关于javascript - 错误。访问 iFrame 内的 PDF 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33430128/