How to open a PDF document in new window use hyperlink?

M

mistral

what is correct way open a PDF document in new window use hyperlink? I
want show images thumbnails linked with PDF files, when click on
thumbnail, PDF will be opened in new window. Some of PDF files are in
the same web server, other are in a remote location. Any help will be
appreciated.
 
S

Steve Swift

mistral said:
what is correct way open a PDF document in new window use hyperlink? I
want show images thumbnails linked with PDF files, when click on
thumbnail, PDF will be opened in new window. Some of PDF files are in
the same web server, other are in a remote location. Any help will be
appreciated.

If the webservers are configured correctly then any link that points to
a PDF file will cause the browser to download the content of the PDF
file and to display it appropriately.

So, <A HREF=/manual.pdf><IMG SRC=/manual_thumb.gif></A> will work if
manual.pdf and manual_thumb.gif are in the root of the server.

"appropriately", when the servers are configured correctly, is a matter
of choice between the browser and its user.

I think my server is configured correctly; when I download /test.pdf it
sends "Content-type: application/pdf" in the HTTP headers, which is
sufficient to keep most browsers/users happy.

If you want to name the pdf files anything other than *.pdf then all
bets are off.

Does this have anything to do with JavaScript? Not as far as I can see.
 
M

mistral

If the webservers are configured correctly then any link that points to
a PDF file will cause the browser to download the content of the PDF
file and to display it appropriately.

So, <A HREF=/manual.pdf><IMG SRC=/manual_thumb.gif></A> will work if
manual.pdf and manual_thumb.gif are in the root of the server.

"appropriately", when the servers are configured correctly, is a matter
of choice between the browser and its user.

I think my server is configured correctly; when I download /test.pdf it
sends "Content-type: application/pdf" in the HTTP headers, which is
sufficient to keep most browsers/users happy.

If you want to name the pdf files anything other than *.pdf then all
bets are off.

Does this have anything to do with JavaScript? Not as far as I can see.

-----------

Is absolutely does not matter are webserver are configured and where
PDF files are located. Some PDF locates somewhere inside web
directory, some - in Internet. Main thing is specify correct path.

The idea is always open PDF file in new window, irrespective of any
circumstances. Plus, control alignment of this window, if
possible(align -right). Opening PDF in same window is bad, since user
will close file and will leave from webpage.

I tried some jscript, but it does not work:

// Opens PDF links in new windows

function doPopups()
{
if (!document.getElementsByTagName) return false;
var links = document.getElementsByTagName("a");
for (var i=0; i < links.length; i++) {
if (links.href.indexOf('.pdf') !== -1) {
links.onclick =
function() {
window.open(this.href,'popper','resizable,scrollbars');
return false;
}
}
}
}


It works, but only with link like this:
<a href="http://website.uk.com/downloads/manual.pdf"
target="_blank">TX handbook</a>

and not work with links like this:

<a href="http://www.website.com/pdf/datasheet.pdf"><img src="http://
www.sample.com/images/image.jpg" alt=" " border="1" height="250"
width="100"></a>

Probably due first link contain 'target="_blank"'. But in that case
script is useless at all.
Is there normal stable solution?
 
R

RobG

-----------

Is absolutely does not matter are webserver are configured and where
PDF files are located. Some PDF locates somewhere inside web
directory, some - in Internet. Main thing is specify correct path.

The idea is always open PDF file in new window, irrespective of any
circumstances. Plus, control alignment of this window, if
possible(align -right). Opening PDF in same window is bad, since user
will close file and will leave from webpage.

I tried some jscript, but it does not work:

// Opens PDF links in new windows

function doPopups()
{
 if (!document.getElementsByTagName) return false;
 var links = document.getElementsByTagName("a");

The document has a links collection, there is no need for
getElementsByTagName:

var links = document.links;

 for (var i=0; i < links.length; i++) {
  if (links.href.indexOf('.pdf') !== -1) {
   links.onclick =
    function() {
     window.open(this.href,'popper','resizable,scrollbars');


A better strategy is to keep a reference to the window and re-use it
if it's been opened previously and is still open - it helps to prevent
multiple pop-ups.

     return false;
    }
  }
 }

It would be a good idea at this point to prevent circular references:

links = null;
}

It works, but only with link like this:
<a href="http://website.uk.com/downloads/manual.pdf"
target="_blank">TX handbook</a>

and not work with links like this:

<a href="http://www.website.com/pdf/datasheet.pdf"><img src="http://www.sample.com/images/image.jpg" alt=" " border="1" height="250"
width="100"></a>

Probably due first link contain 'target="_blank"'. But in that case
script is useless at all.
Is there normal stable solution?

No. Browsers are configured by users to deal with pop-ups according
to the users' wishes. Browsers will also deal with files like PDFs
differently - mine will open them in a different application and will
not open a popup.
 
M

mistral

Is absolutely does not matter are webserver are configured and where
PDF files are located. Some PDF locates somewhere inside web
directory, some - in Internet. Main thing is specify correct path.
The idea is always open PDF file in new window, irrespective of any
circumstances. Plus, control alignment of this window, if
possible(align -right). Opening PDF in same window is bad, since user
will close file and will leave from webpage.
I tried some jscript, but it does not work:
// Opens PDF links in new windows
function doPopups()
{
if (!document.getElementsByTagName) return false;
var links = document.getElementsByTagName("a");

The document has a links collection, there is no need for
getElementsByTagName:

var links = document.links;

for (var i=0; i < links.length; i++) {
if (links.href.indexOf('.pdf') !== -1) {
links.onclick =
function() {
window.open(this.href,'popper','resizable,scrollbars');


A better strategy is to keep a reference to the window and re-use it
if it's been opened previously and is still open - it helps to prevent
multiple pop-ups.
return false;
}
}
}

It would be a good idea at this point to prevent circular references:

links = null;


It works, but only with link like this:
<a href="http://website.uk.com/downloads/manual.pdf"
target="_blank">TX handbook</a>
and not work with links like this:
<a href="http://www.website.com/pdf/datasheet.pdf"><img src="http://www.sample.com/images/image.jpg" alt=" " border="1" height="250"
width="100"></a>
Probably due first link contain 'target="_blank"'. But in that case
script is useless at all.
Is there normal stable solution?

No. Browsers are configured by users to deal with pop-ups according
to the users' wishes. Browsers will also deal with files like PDFs
differently - mine will open them in a different application and will
not open a popup.

----------------

Just tried this version, no any difference, works the same:

// Opens PDF links in new windows

function doPopups()
{
if (!document.getElementsByTagName) return false;
var links = document.links;
for (var i=0; i < links.length; i++) {
if (links.href.indexOf('.pdf') !== -1) {
links.onclick =
function() {
window.open(this.href,'popper','resizable,scrollbars');
return false;
}
}
}
links = null;
}


Probably, no needs in javascript at all, since target="_blank" in href
statement do this.

<a href="http://website.uk.com/downloads/manual.pdf"
target="_blank">TX handbook</a>

Perhaps use FRAME-based page have more sence.
 
M

mistral

The document has a links collection, there is no need for
getElementsByTagName:
š var links = document.links;
šfor (var i=0; i < links.length; i++) {
š if (links.href.indexOf('.pdf') !== -1) {
š šlinks.onclick =
š š function() {
š š šwindow.open(this.href,'popper','resizable,scrollbars');

A better strategy is to keep a reference to the window and re-use it
if it's been opened previously and is still open - it helps to prevent
multiple pop-ups.
It would be a good idea at this point to prevent circular references:
š links = null;
No. šBrowsers are configured by users to deal with pop-ups according
to the users' wishes. šBrowsers will also deal with files like PDFs
differently - mine will open them in a different application and will
not open a popup.

----------------

Just tried this version, no any difference, works the same:

// Opens PDF links in new windows

function doPopups()
{
šif (!document.getElementsByTagName) return false;
švar links = document.links;
šfor (var i=0; i < links.length; i++) {
š if (links.href.indexOf('.pdf') !== -1) {
š šlinks.onclick =
š š function() {
š š šwindow.open(this.href,'popper','resizable,scrollbars');
š š šreturn false;
š š }
š }
š}
š šlinks = null;

}

Probably, no needs in javascript at all, since target="_blank" in href
statement do this.

<a href="http://website.uk.com/downloads/manual.pdf"
target="_blank">TX handbook</a>

Perhaps use FRAME-based page have more sence.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,226
Members
46,815
Latest member
treekmostly22

Latest Threads

Top