2015-10-30 102 views
1

我正在嘗試使用webpage內部的文本框搜索PDF中的單詞。我將pdf嵌入到IFRAME中,但它不工作。此代碼使用普通文本。當我搜索單詞時,有時會打開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 SEACRHING文本

<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> 
+1

你爲什麼使用iframe?還有其他方法可以到達你想去的地方。我建議使用PDF.js圖書館所做的一件事是將PDF轉換爲其他格式,以便於搜索。 – zipzit

+0

@zipzit pdf.js不適用於所有瀏覽器。 – SSangeet

+0

@zipzit我必須搜索它裏面的單詞,然後我必須在pdf中突出顯示該單詞並顯示用戶的PDF – SSangeet

回答

0

的代碼不會爲PDF工作。

highlight類代替HTML中的單詞,沒關係。但對於PDF來說這是不可能的。您需要首先將PDF轉換爲HTML。

+0

我知道問題是我必須閱讀PDF內的單詞或突出顯示它。其他人發表評論,它可能與PDF.js,但我認爲pdf.js在所有瀏覽器中都不工作 – SSangeet

+0

請注意鏈接http://www.evermap.com/javascript.asp希望有用。 – Sachink

+0

注意:PDF確實沒有DOM。因此無論如何,您需要將PDF轉換爲像HTML,SVG,CANVAS或其他DOM支持的元素。 – Sachink