<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://greggsmith.net/wiki/index.php?action=history&amp;feed=atom&amp;title=SD_working_with_Google_Chrome</id>
		<title>SD working with Google Chrome - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://greggsmith.net/wiki/index.php?action=history&amp;feed=atom&amp;title=SD_working_with_Google_Chrome"/>
		<link rel="alternate" type="text/html" href="http://greggsmith.net/wiki/index.php?title=SD_working_with_Google_Chrome&amp;action=history"/>
		<updated>2026-04-28T06:01:30Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.1</generator>

	<entry>
		<id>http://greggsmith.net/wiki/index.php?title=SD_working_with_Google_Chrome&amp;diff=4359&amp;oldid=prev</id>
		<title>Dr_IT: New page: == Overview == How to get SD (tested on SD 12.1) working with [http://www.google.com/chrome Google Chrome] browser (or any clones like [https://www.srware.net/en/software_srware_iron_downl...</title>
		<link rel="alternate" type="text/html" href="http://greggsmith.net/wiki/index.php?title=SD_working_with_Google_Chrome&amp;diff=4359&amp;oldid=prev"/>
				<updated>2011-10-06T07:44:07Z</updated>
		
		<summary type="html">&lt;p&gt;New page: == Overview == How to get SD (tested on SD 12.1) working with [http://www.google.com/chrome Google Chrome] browser (or any clones like [https://www.srware.net/en/software_srware_iron_downl...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Overview ==&lt;br /&gt;
How to get SD (tested on SD 12.1) working with [http://www.google.com/chrome Google Chrome] browser (or any clones like [https://www.srware.net/en/software_srware_iron_download.php SRWare Iron] or [https://www.comodo.com/home/browsers-toolbars/browser.php Comodo Dragon]). &lt;br /&gt;
&lt;br /&gt;
Speed of using SD (e.g. screen/window creating) is fastest i've seen till now (Note: if you want fastest experience disable all extensions with switch ''--disable-extensions'').&lt;br /&gt;
&lt;br /&gt;
Some minor issues are still present. Like f.e. attachments which get wrong name or some visual stuff, but overall it works great.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Firstly you don't have to replace files in PDA/Mobile section or something, just use a different user agent by starting Chrome with switch ''--user-agent'' (f.e. ''--user-agent=&amp;quot;Mozilla/5.0 (Windows NT 6.1; rv:7.0) Gecko/20100101 Firefox/7.0&amp;quot;'')&lt;br /&gt;
&lt;br /&gt;
Now to get back the missing menubar you have to make some changes to the function setup_for_menubar. Below the complete function including the added code. Add this code to ''sitemods.js''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var retry_count = 0;&lt;br /&gt;
function setup_for_menubar(name)&lt;br /&gt;
{&lt;br /&gt;
  //dLog(&amp;quot;setup_for_menubar(&amp;quot; + name + &amp;quot;) [&amp;quot; + window.parent.name + &amp;quot;]&amp;quot;);&lt;br /&gt;
  window.__menuBar = void(0);&lt;br /&gt;
  window.menubarFrame = void(0);&lt;br /&gt;
  var mbFrame;&lt;br /&gt;
  for (var w = window; w != null &amp;amp;&amp;amp; w != ahdframeset &amp;amp;&amp;amp; w != w.parent; w = w.parent) &lt;br /&gt;
	{&lt;br /&gt;
		if ((typeof w.frameElement == &amp;quot;object&amp;quot;) &amp;amp;&amp;amp; (w.frameElement != null) &amp;amp;&amp;amp; (w.frameElement.tagName == &amp;quot;IFRAME&amp;quot;) &amp;amp;&amp;amp; (! w.name.match(/menuOK/)))&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		mbFrame = w.parent.frames[&amp;quot;menubar&amp;quot;];&lt;br /&gt;
    //When browser is Chromium based, get the menubar frame in a different way (original didn't work)&lt;br /&gt;
		if (typeof navigator.vendor != &amp;quot;undefined&amp;quot;)	//vendor attribute does not exist (IE)&lt;br /&gt;
		{&lt;br /&gt;
			if (navigator.vendor.match(/Google/)) &lt;br /&gt;
			{&lt;br /&gt;
				var myNodeList = new Array();&lt;br /&gt;
				myNodeList = w.parent.document.getElementsByName(&amp;quot;menubar&amp;quot;);&lt;br /&gt;
				for (var i = 0; i &amp;lt; myNodeList.length; i++) &lt;br /&gt;
				{&lt;br /&gt;
					if ((typeof mbFrame == &amp;quot;undefined&amp;quot;) || (mbFrame.name != &amp;quot;menubar&amp;quot;))&lt;br /&gt;
						mbFrame = myNodeList[i].contentWindow;	// Get MenuBar Window (which contains object __menuBar)&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
    if (typeof mbFrame == &amp;quot;object&amp;quot; &amp;amp;&amp;amp; mbFrame != null &amp;amp;&amp;amp; mbFrame.name == &amp;quot;menubar&amp;quot;)&lt;br /&gt;
      break;&lt;br /&gt;
  }&lt;br /&gt;
  if ((typeof mbFrame == &amp;quot;object&amp;quot;) &amp;amp;&amp;amp; (mbFrame != null))&lt;br /&gt;
	{&lt;br /&gt;
    if ((typeof mbFrame.__menuBar != &amp;quot;object&amp;quot;) || (mbFrame.__menuBar == null)) &lt;br /&gt;
		{&lt;br /&gt;
      retry_count++;&lt;br /&gt;
      if (retry_count &amp;lt; 10) &lt;br /&gt;
			{&lt;br /&gt;
        var timeout = retry_count * 100;&lt;br /&gt;
        if ( typeof name == &amp;quot;string&amp;quot; )&lt;br /&gt;
          window.setTimeout(&amp;quot;setup_for_menubar('&amp;quot; + name + &amp;quot;');&amp;quot;, timeout);&lt;br /&gt;
        else&lt;br /&gt;
          window.setTimeout(&amp;quot;setup_for_menubar();&amp;quot;, timeout);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    else &lt;br /&gt;
		{&lt;br /&gt;
      // We only build menus if there is a menubar frame at our level.  This&lt;br /&gt;
      // avoids peculiar results for windows containing deferred tabs.&lt;br /&gt;
      window.menubarFrame = mbFrame;&lt;br /&gt;
      window.__menuBar = mbFrame.__menuBar;&lt;br /&gt;
      window.__menuBar.deferSetupCompletion = ahdtop.cstUsingScreenReader;&lt;br /&gt;
      window.menubarOnload = null;&lt;br /&gt;
			if ( typeof name != &amp;quot;string&amp;quot; ) &lt;br /&gt;
			{&lt;br /&gt;
				if (typeof propFormName != &amp;quot;string&amp;quot;) &lt;br /&gt;
					name = &amp;quot;&amp;quot;; &lt;br /&gt;
				else &lt;br /&gt;
				{&lt;br /&gt;
					name = propFormName;&lt;br /&gt;
					if ((typeof propFormName3 == &amp;quot;string&amp;quot;) &amp;amp;&amp;amp; (propFormName3.length &amp;gt; 0))&lt;br /&gt;
						name += &amp;quot;_&amp;quot; + propFormName3;&lt;br /&gt;
				}&lt;br /&gt;
				if (typeof argID == &amp;quot;string&amp;quot;)&lt;br /&gt;
					name += &amp;quot;_&amp;quot; + argID;&lt;br /&gt;
				if ((typeof rptName != &amp;quot;undefined&amp;quot;) &amp;amp;&amp;amp; (typeof argSearchSqlClause == &amp;quot;string&amp;quot;) &amp;amp;&amp;amp;	(argSearchSqlClause.length &amp;gt; 0))&lt;br /&gt;
					name += &amp;quot;_&amp;quot; + argSearchSqlClause;&lt;br /&gt;
				if ((typeof cawf_procid == &amp;quot;string&amp;quot;) &amp;amp;&amp;amp; (cawf_procid.length &amp;gt; 0))&lt;br /&gt;
					name += &amp;quot;_&amp;quot; + cawf_procid;&lt;br /&gt;
				// Ensure menu is refreshed after change order attach/detach&lt;br /&gt;
				if (typeof argChange == &amp;quot;string&amp;quot;) &lt;br /&gt;
				{&lt;br /&gt;
					if (! argChange.match(/^\s*$/))&lt;br /&gt;
						name += &amp;quot;_attchg&amp;quot;;&lt;br /&gt;
				}&lt;br /&gt;
				if ((typeof argActive == &amp;quot;string&amp;quot;) &amp;amp;&amp;amp;	((typeof cfgNX_EDIT_INACTIVE != &amp;quot;string&amp;quot;) || (cfgNX_EDIT_INACTIVE != &amp;quot;no&amp;quot;)))&lt;br /&gt;
					name += &amp;quot;_&amp;quot; + argActive;&lt;br /&gt;
      }&lt;br /&gt;
      window.menubarName = name;&lt;br /&gt;
&lt;br /&gt;
      // We build the menubar right away to get the hotkeys right&lt;br /&gt;
      find_build_menubar();&lt;br /&gt;
&lt;br /&gt;
      // We also set an onload in case the user presses the Back button    &lt;br /&gt;
      if (typeof window.onload != &amp;quot;undefined&amp;quot;)&lt;br /&gt;
				window.menubarOnload = window.onload;&lt;br /&gt;
      window.onload = find_build_menubar_onload;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now to let it default select a tab for you:&lt;br /&gt;
# Change ''toolbar.htmpl'' to let it call the function ''zLoadOK()'' instead of ''LoadOK()'' in the onload event.&lt;br /&gt;
# Add the following code to ''sitemods.js''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function zLoadOK()&lt;br /&gt;
{&lt;br /&gt;
	//When browser is Chromium based, get the toolbar frame in a different way (original didn't work)&lt;br /&gt;
		if (typeof navigator.vendor != &amp;quot;undefined&amp;quot;)	//vendor attribute does not exist (IE)&lt;br /&gt;
		{&lt;br /&gt;
			if (navigator.vendor.match(/Google/)) &lt;br /&gt;
			{&lt;br /&gt;
				var myNodeList = new Array();&lt;br /&gt;
				var tbFrame;&lt;br /&gt;
				for (var w = window; w != null &amp;amp;&amp;amp; w != ahdframeset &amp;amp;&amp;amp; w != w.parent; w = w.parent) &lt;br /&gt;
				{&lt;br /&gt;
					myNodeList = parent.document.getElementsByName(&amp;quot;toolbar&amp;quot;);&lt;br /&gt;
					for (var i = 0; i &amp;lt; myNodeList.length; i++) &lt;br /&gt;
					{&lt;br /&gt;
						if ((typeof mbFrame == &amp;quot;undefined&amp;quot;) || (mbFrame.name != &amp;quot;toolbar&amp;quot;))&lt;br /&gt;
						{&lt;br /&gt;
							tbFrame = myNodeList[i].contentWindow;	// Get ToolBar Window (which contains tabClick method)&lt;br /&gt;
							tbFrame.tabClick(parent.toolbarInitialTab);&lt;br /&gt;
							break;&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			else	//Call original function&lt;br /&gt;
				loadOK();&lt;br /&gt;
		}&lt;br /&gt;
		else	//Call original function&lt;br /&gt;
			loadOK();		&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dr_IT</name></author>	</entry>

	</feed>