2016-12-13 147 views
0

我有一個內置inDesign的Adobe Interactive PDF。(Adobe Acrobat)在javascript搜索查詢中排除搜索欄內容搜索

該文檔有一個搜索欄,用於搜索文檔,它成功執行。

問題:搜索結果中包含搜索欄的內容。由於搜索欄位於每個頁面上,因此會導致大量任意搜索結果。

示例:搜索「hello」會在每個單頁上的搜索欄中顯示「hello」的所有實例以及「hello」的實例。

Search Bar Javascript Query

我運行JavaScript的搜索查詢是目前:

var textToSearch = this.getField("search1").valueAsString; 
if (textToSearch!="") search.query(textToSearch, "ActiveDoc"); 

我想從我的搜索中排除的搜索欄的內容,如何最好地執行?

編輯:取代「search1」帶空白字符串的字段,現在搜索字段不包含在搜索結果中。但我怎麼用「Doc.delay」並寫上「textToSearch」回「搜索1」現場

更新的代碼:

var textToSearch = this.getField("search1").valueAsString; 
var eraseStr = this.getField("search1").value =""; 
if (textToSearch!="") search.query(textToSearch, "ActiveDoc"); 

回答

0

你需要的字段值設置爲空字符串( 「」)執行搜索之前,因爲您無法精確控制將在PDF中搜索的內容。但是,在獲取textToSearch的值之後,並在將字段值設置爲空白之前,可以將Doc.delay屬性設置爲true。這將防止字段外觀重繪,直到您將其設置爲false。然後,在執行搜索之後,將字段值重新設置爲textToSearch,將Doc.delay屬性設置爲false,並且希望...用戶看起來沒有任何更改。

+0

感謝您的洞察力,我知道如何在執行搜索之前將字段值替換爲空字符串。幸運的是,搜索欄的結果被替換爲空字符串,並且不包含在搜索結果中。不過,我很困惑如何將textToSearch寫回到「search1」中。您是否會詳細說明「將Doc.delay屬性設置爲true」我知道如何將延遲設置爲true,但在這種情況下將調用的是ActiveDoc? 「Doc」在哪裏定義?非常感謝你 –

+0

在這個迴應中,代碼可能會有點不可思議,但是這裏有...要設置字段的值,使用 - this.getField(「search1」)。valueAsString = textToSearch; - 要設置延遲屬性,在通用上下文中使用「this」,這是當前文檔,因此它將是 - this.delay = true; - 或 - this.delay = false; – joelgeraci