Jens Gyldenkærne Clausen wrote:
> God ide - husk blot at Opera-brugere skal taste Ctrl-T.
Takker - hermed husket - forøvrigt meget sødt, at Opera bruger 
Meta-tagget description til bogmærker!
>>1. Hvordan laver jeg en if(not IE) betingelse - er det dén der
>>på hjemmesideskolens side er betegnet som if(document.all) ?
> 
> Et godt råd mht. javascript-tests - test så vidt muligt altid for
> de egenskaber du vil bruge i stedet for at teste for egenskaber som
> måske antyder browser X eller browser Y.
> 
> I tilfældet med bookmarks skal der testes for
> window.external.AddFavorite (og den overordnede egenskab
> window.external).
Det var præcis dét jeg var ude efter - det virker som en meget bedre 
løsning end den oprindelige - meget mere robust - takker!
> Du kan se et fungerende eksempel på siden her.
> <
http://gyros.dk/usenet/html/bookmark.shtml>.
> 
> Scriptet forsøger også med en Netscape-metode at tilføje bogmærker
> til Geckobrowsere, men det har jeg aldrig fået til at virke. Men
> til gengæld er der fallback, så man får besked om tastaturkoden
> (Ctrl-T til operabrugere og Ctrl-D til resten).
Jeg har bikset lidt med scriptet, da jeg syntes det brugte en lidt 
mystisk if-else struktur - det er lavet om til følgende:
function AddBookmark(BookmarkTitle){
   var url = window.top.document.location;
   // Internet Explorer - eller noget andet der understøtter AddFavorite()
   if(window.external && typeof window.external.AddFavorite != "undefined")
      window.external.AddFavorite(url,BookmarkTitle);
   // Opera - eller noget der faker det...
   else if (typeof opera!="undefined")
      alert("Det ser ud til at du bruger Opera.\nTryk Ctrl-T for at tilføje 
siden til dine bogmærker.");
   // Gecko-baseret - eller noget der faker det...
   else if (typeof netscape!="undefined") {
      try {
         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
         var 
c=Components.classes["@mozilla.org/browser/bookmarks-service;1"].getService(Components.interfaces.nsIBookmarksService);
         c.addBookmarkImmediately(url,BookmarkTitle,0,"text/html");
      } catch(ex) {
         alert("Det ser ud til at du bruger en Gecko-baseret browser.\nTryk 
Ctrl-D for at tilføje siden til dine bogmærker");
         //alert("error:"+ex.description);
         //Interface not supported?
      }
   // En helt anden browser, som vi ikke lige kan fange...
   } else {
      alert("Du bruger desværre en ukendt browser.\nPrøv evt. at tilføje 
siden til dine bogmærker vha. browserens menu!");
   }
}
Er der umiddelbart nogle "issues" med ovenstående og er det rigtigt 
eller forkert at skrive "Gecko-baseret browser"?
> Jeg har ikke undersøgt om tastaturkoden er noget andet end Ctrl-D
> for andre browsere end Opera.
Det kan være, at der kommer lidt respons fra nogle indehaverere af de 
mere eksotiske browsere - ellers lader jeg det ligge ved det her 
resultat, som jeg egentlig er ok tilfreds med!
Tak for hjælpen og forklaringerne!
Mvh Tommy