I have a site that lists customer letters, and when a letter's "view" button is clicked it uses JavaScript (window.open(url)) to open a new window to get the .pdf file, which I think is generated by crystal reports.
In IE8 on Windows XP it works
On Windows 7 it opens a blank page with the correct url, but it doesn't try and open the file
In any other browser on either OS it works
The machine has the latest Adobe Reader installed
In Win7/IE8 once the blank page is opened, if you then click on the url and hit enter, it will request the file again and correctly open it. I've looked at the requests with fiddler and they're exactly the same.
I'm setting the mime type to "application/pdf" and inline to true in the content-disposition header.
I can kludge it by returning a view that just sets window.location = url, but it feels awful.
Is this a known issue? Is there any way to make it work in both IE versions?
Still no idea why there's the disparity between the two versions, but instead of JavaScript I'm now using target="_blank" on the element and that's done the trick.
Related
I'm using Delphi XE2 in Windows 7 64 bit, I put TWebBrowser component in a Form. I navigate it to a blogspot website, e.g:
Webbrowser1.Navigate('http://maniacpcgame.blogspot.com');
it shows JavaScript Error (HTML Parsing Error), then I turn Silent properties to True as follow:
Webbrowser1.Silent := true;
Webbrowser1.Navigate('http://maniacpcgame.blogspot.com');
But the browser cannot open the page properly (only show background image). I tried other blogspot websites and got same problem. Any solution to display blogspot website correctly in TWebBrowser?
Twebbrowser uses IEFRAME
IEFRAME depends on the version of internet explorer you are running on that computer
You can deploy IEFRAME.DLL (in c:windows/system32 )with your application so you can be sure the same version is used everywhere so you wont get inconsistencies between computers.
However newer ones wont work on XP and there are some directx requirements.
A good alternative is
Delphi Embed chromium, it makes your deployed application a lot bigger (+-15MB) but you can be very sure it works everywhere and always (windows 8 to XP) and it will always produce the same page
Also if you have to manipulate the DOM or insert javascript (to communicate with the page)
this will be easier and will work more consistently.
Here is a link for the latest version:
https://code.google.com/p/dcef3/
I need to point one page to another and then scroll to a particular section. In Chrome and Firefox, using an URL like www.example.com#section1 does the trick. (#section1 can be an anchor or an element's id).
However, in Safari, the hash disappears when I click the link.
Why is this happening? Is it possible to do it on Safari? If not, how can I get around this problem?
When using hyperlinks that point to inside sections on other pages you must remember to add a slash (/) before the hashtag for cross browser compatibility.
Eg: www.example.com/#item-1
doing www.example.com#item-1 isn't accepted by all browsers (apparently by Chrome and Firefox it is)
Case: I have parameters after '#' like url#myParam=123, when I changed params like
url#myParam=789 Safari sometimes loaded previous page based on myParam=123,
although in Address bar it showed myParam=789
Solution : Use url?#myParam=123, then Safari will everytime load new page.
Using '?' before '#' solved my problem.
I had a related problem with Safari (on iPhone/iOS) seemingly stripping off the hash/fragment when doing a:
var newHash = ...;
window.location.replace("#" + newHash);
The actually problem was a javascript error that only appeared on Safari. Since I could not easily assess a javascript console for the iPhone, I chose to download an old version of Window's Safari (related post, download).
Then, I could replicate the problem from the iPhone on my Window's desktop using the old version of Safari. At that point, I found a javascript tag had a missing ']'. This was a legitimate bug, but it was somehow ignored by Chrome, Firefox, and IE.
The window.location.replace() was not even being called, because the code was breaking out on the javascript error. So the problem wasn't that Safari was stripping the hashtag, even though it appeared that way from multi-browser testing.
I just experienced an issue like this. I was using a URL re-write in the asp.net web.config. With Safari, the hash and everything after was removed. After trying some of the things mentioned above I was still having problems. The issue for me was that this was all happening under HTTPS. Once I specified the full URL in the redirect and included the https:// scheme the redirect worked correctly and preserved the hash. Note this wasn't an issue with Chrome or Firefox.
For me it was the exact same issue like mrbinky3000 has stated above: The server mod-rewrite was killing the hash in safari.
The solution was to use a full absolute link like:
http://www.example.com/path/#item-1
I have looked around the web and have found that appending #page=?? to the end of a PDF link will automatically take the visitor to that specific page in the PDF file.
I was wondering if this is still best practice as it doesn't seem to be working for me (Chrome on Windows 7). Also, all the articles I have found so far date back to 2006-2008, have things changed recently?
This is still valid code but it may require that some version of Acrobat (Reader, Pro, etc) be installed as a plugin on the browser in order for it to work as expected. Since multiple commonly-used browsers now have a built-in reader (Chrome, Safari for iOS are the big two that come to mind) support for direct page linking is somewhat spotty now. You can still do it...the worst case scenario is that the PDF just opens to the first page for those users but I would advise to just leave off the direct page link. If the page is that important, extract it to a separate PDF and link to that.
I want to open a web page at default browser at a specific position and also open another webpages at that one, not new task of that browser. maybe user opens new task of that browser but by clicking a button in my delphi program the selected web page have to open at first one. is that possible? my company wants me to program such thing BUT I do not know how to do. I really appricate any help. thanks.
There are instructions here to open the default browser, but you may even be able to "run" a url, as you can from the Windows run command. You then need to retain the handle of that process so that you can do something with it.
To open a web page at a particular point you would ideally use a named anchor in the page, ie, the bit after a hash: http://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_a_name If you don't have control of the page and there are no named anchors you could try scrolling: How to scroll the scrollbar in external application via WinAPI?
Does anybody use bare .SWF files as webpages?
I know it's possible; it seems to work fine for me.
Why would I embed a SWF inside an HTML page if it's just going to be full screen (I mean the size of the browser's normal viewable page area, not COMPLETELY fullscreen)?
Is there a lack of browser support?
Or is this functionality determined by the browser's Flash plugin?
If you embed it in html page and the client doesn't have the flash plugin, most browsers show a missing plugin message. If u directly host the swf, a plugin-less browser might consider it as a download link and try to download the swf into the client machine instead of showing the missing plugin message.
My opinion is that if the browser has the Flash plugin it will render it, and it's up to you to implement how the swf behaves when you scale/resize the browser window/etc.
You can embed a swf in an HTML page and have it full browser screen offcourse, and you could interact with the browser a bit better ( some nice javascript/flash action going on ), not mention it would be more SEO/standards friendly.
I would recommend using SWFObject. Have a look at the fullpage demo.