2016-12-13 13 views
0

私はAdobe 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"); 

私は私の検索から検索バーの内容を除外したい、最善の方法を実行するために?

EDIT: "search1"フィールドを空白の文字列に置き換えました。検索フィールドは検索結果に含まれていません。

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

答えて

0
あなたは空の文字列にフィールド値を設定する必要があります

(:しかし、どのように私は「Doc.delay」を使用して

更新されたコードバック「がsearch1」フィールドに「textToSearch」を書きません"")検索を実行する前に、PDF内の検索内容を正確に制御することができないためです。ただし、textToSearchの値を取得した直後で、フィールド値を空白に設定する前に、Doc.delayプロパティをtrueに設定できます。これにより、フィールドの外観がfalseに戻されるまで再描画されなくなります。その後、検索を実行した後、フィールド値をtextToSearchに戻し、Doc.delayプロパティをfalseに設定してください...うまくいけば...何もユーザーのために変更されていないように見えます。

+0

洞察をいただきありがとうございます。検索を実行する前に、フィールド値を空の文字列に置き換える方法を理解しています。ありがたいことに、検索バーの結果は空の文字列に置き換えられ、検索結果には含まれません。しかし、私はどのように "search1"にtextToSearchを書き込むかについて混乱しています。 「Doc.delayプロパティをtrueに設定する」を詳しく説明しますか?遅延をtrueに設定する方法を理解していますが、この場合ActiveDocと呼ばれるものは何ですか? 「Doc」はどこに定義されていますか?ありがとうございました –

+0

このレスポンスでコードがちょっと怪しいかもしれませんが、ここでは...フィールドの値を設定するには、 - this.getField( "search1")を使用してください。valueAsString = textToSearch; - 遅延プロパティを設定するには、現在のドキュメントの一般的なコンテキストで "this"を使用します。これはthis.delay = trueです。 - または - this.delay = false; – joelgeraci