Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

script werkt niet in Firefox

Anoniem
boelieboelie
8 antwoorden
  • Dit script heb ik op een eigen startpagina staan.
    Het werkt wel inInternet Explorer, maar niet in Firefox, enm dat is mijn standaardbrowser. Hoe kan ik het oo kin Firefox laten werken?

    <script language="JavaScript">
    /* Find In Page Script- By Mike Hall (MHall75819@aol.com) */
    var NS4 = (document.layers); // Which browser?
    var IE4 = (document.all);
    var win = window.top.frames['links']; // window to search.
    var n = 0;
    function findInPage(str) {
    var txt, i, found;
    if (str == "";)
    return false;
    // Find next occurance of the given string on the page, wrap around to the
    // start of the page if necessary.
    if (NS4) {
    // Look for match starting at the current point. If not found, rewind
    // back to the first match.
    if (!win.find(str))
    while(win.find(str, false, true))
    n++;
    else
    n++;
    // If not found in either direction, give message.
    if (n == 0)
    alert("Not found.";);
    }
    if (IE4) {
    txt = win.document.body.createTextRange();
    // Find the nth match from the top of the page.
    for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
    txt.moveStart("character", 1);
    txt.moveEnd("textedit";);
    }
    // If found, mark it and scroll it into view.
    if (found) {
    txt.moveStart("character", -1);
    txt.findText(str);
    txt.select();
    txt.scrollIntoView();
    n++;
    }
    // Otherwise, start over at the top of the page and find first match.

    else {
    if (n > 0) {
    n = 0;
    findInPage(str);
    }
    // Not found anywhere, give message.
    else
    alert("Not found.";);
    }
    }
    return false;
    }
    </script>


    <form name="search" onSubmit="return findInPage(this.string.value);">
    <input name="string" type="text" size=20 onChange="n = 0;">
    <input type="submit" value="Zoek">
    </form>
  • Vraagje: heb je het zelf geschreven? In dat geval raad ik je aan om het te programmeren volgens het JavaScript DOM, dan werkt het in praktisch alle moderne browsers. Het vereist echter wel een iets andere manier van denken. Als je het gewoon gevonden hebt op internet kan je misschien beter een andere zoeken, want ik zie dat ze heel specifiek voor bepaalde browsers programmeren en dat is niet alleen onwenselijk maar ook een moeilijke manier van programmeren.

    - Bas
  • Ik heb het op internet gevonden, want ik ben zelf niet thuis in javascript.
  • Misschien handiger om in het vervolg de maker mailen ;)
    [quote:f5f62fe1e2]
    Find In Page Script- By Mike Hall (MHall75819@aol.com)
    [/quote:f5f62fe1e2]

    Dit is in ieder geval al leesbaarder (en een beetje gestript)

    [code:1:f5f62fe1e2]
    <script type="text/javascript">
    var win = window.top.frames['links']; // window to search.
    var n = 0;

    function findInPage(str) {
    var txt, i, found;
    if (str == "")
    return false;
    // Find next occurance of the given string on the page, wrap around to the
    // start of the page if necessary.

    txt = win.document.body.createTextRange();
    // Find the nth match from the top of the page.
    for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
    txt.moveStart("character", 1);
    txt.moveEnd("textedit");


    // If found, mark it and scroll it into view.
    if (found) {
    txt.moveStart("character", -1);
    txt.findText(str);
    txt.select();
    txt.scrollIntoView();
    n++;
    }
    // Otherwise, start over at the top of the page and find first match.

    else {
    if (n > 0) {
    n = 0;
    findInPage(str);
    }
    // Not found anywhere, give message.
    else {
    alert("Not found.");
    }
    }
    }
    return false;
    }
    </script>
    [/code:1:f5f62fe1e2]

    Ik heb het verder niet getest.
  • Ik heb de maker proberen te mailen, maar het vermelde adres bestond niet meer, ik kreeg mijn mail terug. Daarom naar het forum gegaan.

    Inmiddels had ik ook al een ander script op internet gevonden dat zowel in IE als in FF werkt.

    Dit nieuwe script van jou werkt ook alleen in IE en niet in FF. Het is veel compacter dan wat ik in tweede instantie gevonden had. Jammer dat het niet in FF werkt, want hoe kleiner hoe fijner, hoe liever ik het gebruik.
    Maar wel erg bedankt voor het meedenken en voor de moeite die je hebt gedaan.
  • [quote:3e2f18d7a4="telpatroon"]Ik heb de maker proberen te mailen, maar het vermelde adres bestond niet meer, ik kreeg mijn mail terug. Daarom naar het forum gegaan.

    Inmiddels had ik ook al een ander script op internet gevonden dat zowel in IE als in FF werkt.

    Dit nieuwe script van jou werkt ook alleen in IE en niet in FF. Het is veel compacter dan wat ik in tweede instantie gevonden had. Jammer dat het niet in FF werkt, want hoe kleiner hoe fijner, hoe liever ik het gebruik.
    Maar wel erg bedankt voor het meedenken en voor de moeite die je hebt gedaan.[/quote:3e2f18d7a4]

    Welk ander script heeft u gevonden, ik heb namelijk hetzelfde probleem op www.antique-horology.org Bij voorbaat dank voor uw hulp.
  • <script>
    <!– Hide from old browsers

    /******************************************
    * Find In Page Script – Submitted
    evised by Alan Koontz (alankoontz@REMOVETHISyahoo.com)
    * Visit Dynamic Drive (http://www.dynamicdrive.com/) for full source code
    * This notice must stay intact for use
    ******************************************/

    // revised by Alan Koontz – May 2003

    var TRange = null;
    var dupeRange = null;
    var TestRange = null;
    var win = null;

    // SELECTED BROWSER SNIFFER COMPONENTS DOCUMENTED AT
    // http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html

    var nom = navigator.appName.toLowerCase();
    var agt = navigator.userAgent.toLowerCase();
    var is_major = parseInt(navigator.appVersion);
    var is_minor = parseFloat(navigator.appVersion);
    var is_ie = (agt.indexOf("msie";) != -1);
    var is_ie4up = (is_ie && (is_major >= 4));
    var is_not_moz = (agt.indexOf('netscape')!=-1)
    var is_nav = (nom.indexOf('netscape')!=-1);
    var is_nav4 = (is_nav && (is_major == 4));
    var is_mac = (agt.indexOf("mac";)!=-1);
    var is_gecko = (agt.indexOf('gecko') != -1);
    var is_opera = (agt.indexOf("opera";) != -1);

    // GECKO REVISION

    var is_rev=0
    if (is_gecko) {
    temp = agt.split("rv:";)
    is_rev = parseFloat(temp[1])
    }

    // USE THE FOLLOWING VARIABLE TO CONFIGURE FRAMES TO SEARCH
    // (SELF OR CHILD FRAME)

    // If you want to search another frame, change from "self" to
    // the name of the target frame:
    // e.g., var frametosearch = 'main'

    //var frametosearch = 'main';
    var frametosearch = 'links';

    function search(whichform, whichframe) {

    // TEST FOR IE5 FOR MAC (NO DOCUMENTATION)

    if (is_ie4up && is_mac) return;

    // TEST FOR NAV 6 (NO DOCUMENTATION)

    if (is_gecko && (is_rev <1)) return;

    // TEST FOR Opera (NO DOCUMENTATION)

    if (is_opera) return;

    // INITIALIZATIONS FOR FIND-IN-PAGE SEARCHES

    if(whichform.findthis.value!=null && whichform.findthis.value!='') {

    str = whichform.findthis.value;
    win = whichframe;
    var frameval=false;
    if(win!=self)
    {

    frameval=true; // this will enable Nav7 to search child frame
    win = parent.frames[whichframe];

    }


    }

    else return; // i.e., no search string was entered

    var strFound;

    // NAVIGATOR 4 SPECIFIC CODE

    if(is_nav4 && (is_minor < 5)) {

    strFound=win.find(str); // case insensitive, forward search by default

    // There are 3 arguments available:
    // searchString: type string and it's the item to be searched
    // caseSensitive: boolean – is search case sensitive?
    // backwards: boolean –should we also search backwards?
    // strFound=win.find(str, false, false) is the explicit
    // version of the above
    // The Mac version of Nav4 has wrapAround, but
    // cannot be specified in JS


    }

    // NAVIGATOR 7 and Mozilla rev 1+ SPECIFIC CODE (WILL NOT WORK WITH NAVIGATOR 6)

    if (is_gecko && (is_rev >= 1)) {

    if(frameval!=false) win.focus(); // force search in specified child frame
    strFound=win.find(str, false, false, true, false, frameval, false);

    // The following statement enables reversion of focus
    // back to the search box after each search event
    // allowing the user to press the ENTER key instead
    // of clicking the search button to continue search.
    // Note: tends to be buggy in Mozilla as of 1.3.1
    // (see www.mozilla.org) so is excluded from users
    // of that browser.

    if (is_not_moz) whichform.findthis.focus();

    // There are 7 arguments available:
    // searchString: type string and it's the item to be searched
    // caseSensitive: boolean – is search case sensitive?
    // backwards: boolean –should we also search backwards?
    // wrapAround: boolean – should we wrap the search?
    // wholeWord: boolean: should we search only for whole words
    // searchInFrames: boolean – should we search in frames?
    // showDialog: boolean – should we show the Find Dialog?


    }

    if (is_ie4up) {

    // EXPLORER-SPECIFIC CODE revised 5/21/03

    if (TRange!=null) {

    TestRange=win.document.body.createTextRange();



    if (dupeRange.inRange(TestRange)) {

    TRange.collapse(false);
    strFound=TRange.findText(str);
    if (strFound) {
    //the following line added by Mike and Susan Keenan, 7 June 2003
    win.document.body.scrollTop = win.document.body.scrollTop + TRange.offsetTop;
    TRange.select();
    }
    }

    else {

    TRange=win.document.body.createTextRange();
    TRange.collapse(false);
    strFound=TRange.findText(str);
    if (strFound) {
    //the following line added by Mike and Susan Keenan, 7 June 2003
    win.document.body.scrollTop = TRange.offsetTop;
    TRange.select();
    }
    }
    }

    if (TRange==null || strFound==0) {
    TRange=win.document.body.createTextRange();
    dupeRange = TRange.duplicate();
    strFound=TRange.findText(str);
    if (strFound) {
    //the following line added by Mike and Susan Keenan, 7 June 2003
    win.document.body.scrollTop = TRange.offsetTop;
    TRange.select();
    }

    }

    }

    if (!strFound) alert ("Zoekterm '"+str+"' niet gevonden!";) // string not found


    }
    // –>
    </script>

    <!– EXAMPLE FORM OF FIND-IN-PAGE SEARCH USING SUBMIT (ALLOWING 'ENTER/RETURN' KEY PRESS EVENT) –>
    <form name="form1" onSubmit="search(document.form1, frametosearch); return false"><input type="text" name="findthis" size="25" title="Press 'ALT s' after clicking submit to repeatedly search page"> <input type="submit" value="Zoek op deze pagina" ACCESSKEY="s"></form>
  • [quote:aa267f24bb="telpatroon"]<script>[…]

    // SELECTED BROWSER SNIFFER COMPONENTS DOCUMENTED AT
    // http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html

    […]

    </script>
    [/quote:aa267f24bb]Wat grappig, die link in dat script… Komt niet vaak voor, dat scripts notabene zelf links meegeven die aangeven dat het betreffende script gigantisch verouderd is en sterk wordt afgeraden :wink:

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.