2012-03-02 7 views
2

URLの一部として文字#をブラウザに渡して、プログラム的に開く必要があります。私は次の操作を実行する場合:ブラウザの#にURLをプログラムで渡す

google-chrome path_to_some_file.pdf#view=Fit 

ブラウザ上で開いたページは意図URLではありませんこれは、path_to_some_file.pdf%23view=Fitです。 %23を手作業で削除し、ブラウザのアドレスバーに「#」と入力すると動作します。文字#をブラウザにプログラムで渡すにはどうすればよいですか?

+0

興味深い。それは自動的にエスケープされている...おそらくこの場合は可能ではないのだろうか? –

+0

@pstそうかもしれません。問題は、pdfの仕様で '# 'を置くように指示されていることです。http://floatboxjs.com/content/parameters.pdf#page=8 – sawa

+0

スーパーユーザースタックでこれを試してみてください。 –

答えて

3

URLを指定して、?クエリまたは#ハッシュ文字列を含める必要があります。

詳細:

次のアプローチは、36

あなたがそれらのいずれかのブラウザを使用してWindowsでバッチファイルからこれをやっている場合は、あなたが後方に使用することができIE10、Firefoxの28、およびChromeで動作します接頭辞がfile:///である限り、パス内にスラッシュを入れます。たとえば、file:///C:/blah/blah/file.pdf#etcは適切なURLですが、あなたのフォーマットがfile:///C:\blah\blah\file.pdf#etcの場合はそれも機能します。

バッチファイルを使用して完全なパスを取得する方法は次のとおりです。

file:///%CD%/file.pdf#blah 

は、作業ディレクトリ(通常はコマンドプロンプトまたはプログラムによって明示的に変更されたものとは異なり、バッチファイルのディレクトリ)に対するファイルに解決されます。

file:///%~dp0/file.pdf#blah 

は、バッチファイルのディレクトリからの相対的なファイルに解決されます。私は通常これで行く。

../を使用すると、バッチファイルのディレクトリに対して相対的に移動できます。結果のURLはまだ正常に動作するはずです。

バッチファイルよりも堅牢なものを使用している場合は、\をすべて/に翻訳して、適切なURLを作成できます。

たとえば、.NETでは、new Uri("C:\blah\file.pdf")を実行することができます。ファイルURI(わからないと思います)が表示され、ハッシュを取得して追加できます。

関連する問題