I've used frames
to display PDF files on the screen while maintaining a menu, the PDF
and menu being in different frames. This is a very simple
application. Is this a sensible method or is their a better way to
display the PDF and menu on the monitor?
Displaying PDFs _in_ something is tricky. The problems are very
similar to those around serving video content.
It's easy to link _to_ a PDF. You config the web server to serve the
correct HTTP content-type and let the client side do the rest.
Simples. This also works for frames and <iframe>s.
Behaviour will usually vary, depending on which content type you
serve. Application/pdf will trigger an embedded viewer (if the browser
has one). Serving a .pdf file as application/octet-stream instead
will be seen as an anonymous binary that the browser can't handle. It
will likely hand it off to the desktop instead, which recognises
the .pdf extension and then fires up the default PDF reader. The PDF
gets displayed, but the reader will be stand-alone, not embedded in
the browser.
A popup window (i.e. JavaScript window.open(), and assuming that your
application is insistent on using a pixel-sized window, sized to the
choice of the server rather than the client (I know this is a bad
idea, but managers don't)) is a bit trickier. You may wish to fill the
page canvas with an <iframe> and have the PDF inside that.
You can use the <embed> tag, but now you're off the standards-
compliant track (probably works for everyone though)
If you use <object>, then the problem is that <object> doesn't embed a
PDF, it embeds a PDF viewer, i.e. a specific piece of software. Those
who prefer Foxit but have Acrobat installed too can find themselves
getting saddled with Acrobat, because that's what the page creator
specified as a first choice instead. This decision belongs with the
client really, not the page editor.