javascript : window.open - javascript

I am working in vb.net 2005. I am in a position to start a new browser with process.start().
Now I have to open that browser in a specific size(say height:300 width:500)
Process.Start("firefox.exe", "abc.html")
and I have written this following code on load of abc.html
var myRef = window.open('abc.html','','left=20,top=20,width=300,height=500');
but it does not resize.
If I add 1 button on this page and click on it (by writing same code on its click event), a new window with expected size opens.
Am I going wrong somewhere?
Thanx.

Firefox doesn't let pages resize the window by default. Also note, if you already have Firefox running then browser preferences will dictate whether you get a new window or a tab. You can force a separate instance of Firefox by using the -no-remote command line flag, but then you won't be able to use the default profile (only one Firefox instance per profile).
My questions for you are:
Why are you launching Firefox from another executable at all instead of just having users click on a link and have it open in their default browser?
If you do need to launch Firefox from an executable, why spend all this effort overriding the user's preferences and settings?
If you' re launching from an executable and are keen to annoy your users whatever the cost, why not just find and resize the Firefox window using the normal Windows APIs?

Related

Mozilla notification showing browser on click

I'm trying to make Mozilla FireFox plugin showing notification. Notifications are visible for Windows and even Mac I want the user to click the notification and open the web page, it sounds pretty simple.
But when adding observer and making window.open or gBroswer.addTab window is opened and tab is opened but in case FireFox is minimized when the notification is shown windows are opened in background and not visible to the user.
Tried to use Components.interfaces.nsIAlertsService and chrome://global/content/alerts/alert.xul they work the same from this perspective.
Is there a way to tell the browser to be top most and be visible to the user?
It doesn't look like this can be done. Firefox generally only supports switching focus between different browser windows when one of them is already focused (via window.focus()). To handle notifications the way you want it (and the way Thunderbird does it) one would need to call SetForegroundWindow() on Windows - there are only two occasions in the Firefox code where this function is called. One is when a new Firefox process is started, the other is when one Firefox window is being minimized. Unfortunately, in this case neither can really be used and Thunderbird indeed uses custom code rather than existing XPCOM APIs to bring itself into foreground.

Open Firefox extension preferences dialog from Add-ons dialog

What I want is simple - I'd like an that will cause the normal Preferences dialog to open with my extension's preference pane highlighted. I would have thought
<em:optionsURL>javascript:openPreferences("my_pref_pane");</em:optionsURL>
would have done it, but it doesn't. I also would have thought
<em:optionsURL>chrome://myapp/browser/options.xul</em:optionsURL>
, with options.xul having <script>javascript:openPreferences("my_pref_pane"); window.close(); </script>, would have done it, but Firefox just displays the script in the resulting popup window and refuses to execute it. How can I force Firefox to not assume I want to pop up some custom configuration dialog and just use the main preferences I already wrote?
(And why can't any helpful documentation exist? </rhetoricalQuestion>)
This will cause Firefox to open the addons manager to your OWN addon's addon page.
var am = require("sdk/preferences/utils");
var self = require("sdk/self");
// Open the add-on manager with the preference page for this add-on.
am.open(self);
// Returns a promise that resolves once the tab is open.
Credit goes to freaktechnic and his gist.

Maximizing the current window in javascript

Is there a way I can maximize a currently minimized window from Javascript? Here's my situation:
I have a series of links that all target the same external window (e.g. "MyNewWindow"). When I click a link, a new window pops up. If I click another link, the page pops up in the same window as expected. If I minimize the "MyNewWindow" popup, I'd like to be able to click another link and have that window maximize.
My approach was to put something on the onLoad part of the body so that when the page is refreshed it will automatically "maximize" if it is minimized. Note: Using window.MoveTo() and window.resizeTo() doesnt seem to do the trick (the window stays minimized).
Thanks!
For all of you know-it-alls, there are perfectly good reasons to want to know how to do this. Here's the reason I needed this:
I'm deploying SCORM modules to a variety of Learning Management Systems (LMSs)
One LMS that a client is using launches the module in a small (600x400) window, with the user controls to maximize or resize said window DISABLED
The client doesn't know how to change this launch behavior
My only option is to try to maximize via javascript, because the idiots who made the LMS took away the user's ability to manage their own windows.
window.moveTo(0, 0);
window.resizeTo(screen.availWidth, screen.availHeight);
This may not work in IE depending on the security zone your page is falling under, and it may not work in Chrome at all. But for a corporate environment in an intranet, it has a good chance of working.
Don't do this, you are not allowed to do this by most modern browsers for a reason.
In a tabbed environment you're not messing with only the window you may have created, but all of my tabs, that's unacceptable. It's the user's computer, user's browser, it's the user who chose to go to your site...let them size the window the way they want it, doing anything else breaks their experience...and their trust in your site.
The behavior you're looking to emulate is what your run-of-the-mill malware does...re-think your approach, please. For example focusing that window is appropriate for what you want, let the default behavior of the browser take over from there, like this:
var thatWindow = window.open(url, "linkWindow");
thatWindow.focus();
try to use window.open(url,fullscreen=yes);
if you out fullscreen=yes than while clinking on link automatically

Open new browser windows in JavaScript without making it active

I have some JavaScript that makes an AJAX call and, if the call fails, opens a new windows (tab in Firefox) and displays the response from the server in that window. This is very convenient for debugging, because the error is typically from Pylons, so it's a full HTML page.
The only problem is that the new tab becomes the active tab, which would totally confuse a regular user. Is there any way to open the tab/window, but not make it active, ie. keep the current active window?
My code currently looks like this:
errorWindow = window.open("", "TCerrorWindow")
if (errorWindow)
errorWindow.document.write(xhr.responseText);
You can call errorWindow.blur(); window.focus(); after, forcing the browser to return focus to the previous window.
The effect you're trying to achieve is commonly called a pop-under window.
AFAIK this is not possible, as a security measure against pop-under windows. For debugging purposes you could
use Firebug (with a handy console, where you can output your own log messages from the code)
create a debug layer (div) on your page, where you output error messages in case an error happens

Window opens with toolbar even when using toolbar=no

I'm working on an app that uses this to open the homepage of the application after they have successfully entered the login details:
window.open("app_homepage_url","myApp","toolbar=no,status=yes,scrollbars=no,location=no,menubar=no,directories=no");
This normally works as expected and hides the toolbar but one user has reported that they still have the toolbar showing. They are using Internet Explorer.
My first thought was maybe there's already a window open with the name 'myApp' and the toolbar shown so the homepage is getting loaded into that window instead of a new one but I tried doing that and the application does not let you log in due to the way the login is handled with sessions so I don't think it can be that.
The comment on this answer seems to suggest there is a way to force the browser to always show the toolbar so I wonder if it is to do with this. Does anyone know how you actually do this?
Any other ideas?
This might be a browser configuration issue.
Have a test on the following configuration settings on IE7 and IE8:
Goto Tools->Internet Options->Security Tab
Select an appropriate security zone settings
Click on Custom level.. button
On the settings tab, look for Miscellaneous Node
Then have a test on the following settings
Allow script-initiated windows without size or position constraint
All websites to open windows without address or status bar.
Closing the browser might helpful when changing configuration settings.

Categories