code_junkie

How do you make a post request into a new browser tab using JavaScript / XUL?

Nov 10th, 2011
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. var windowManager = Components.classes["@mozilla.org/appshell/window-mediator;1"]
  2. .getService(Components.interface
  3. s.nsIWindowMediator);
  4. var browserWindow = windowManager.getMostRecentWindow("navigator:browser");
  5. var browser = browserWindow.getBrowser();
  6. if(browser.mCurrentBrowser.currentURI.spec == "about:blank")
  7. browserWindow.loadURI(url, null, postData, false);
  8. else
  9. browser.loadOneTab(url, null, null, postData, false, false);
  10.  
  11. function openAndReuseOneTabPerURL(url) {
  12. var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
  13. .getService(Components.interfaces.nsIWindowMediator);
  14. var browserEnumerator = wm.getEnumerator("navigator:browser");
  15.  
  16. // Check each browser instance for our URL
  17. var found = false;
  18. while (!found && browserEnumerator.hasMoreElements()) {
  19. var browserInstance = browserEnumerator.getNext().getBrowser();
  20.  
  21. // Check each tab of this browser instance
  22. var numTabs = browserInstance.tabContainer.childNodes.length;
  23. for(var index=0; index<numTabs; index++) {
  24. var currentBrowser = browserInstance.getBrowserAtIndex(index);
  25. if ("about:blank" == currentBrowser.currentURI.spec) {
  26.  
  27. // The URL is already opened. Select this tab.
  28. browserInstance.selectedTab = browserInstance.tabContainer.childNodes[index];
  29.  
  30. // Focus *this* browser
  31. browserInstance.focus();
  32. found = true;
  33. break;
  34. }
  35. }
  36. }
  37.  
  38. // Our URL isn't open. Open it now.
  39. if (!found) {
  40. var recentWindow = wm.getMostRecentWindow("navigator:browser");
  41. if (recentWindow) {
  42. // Use an existing browser window
  43. recentWindow.delayedOpenTab(url, null, null, null, null);
  44. }
  45. else {
  46. // No browser windows are open, so open a new one.
  47. window.open(url);
  48. }
  49. }
  50. }
Add Comment
Please, Sign In to add comment