Beste forumleden,

Ik heb een zoekfunctie op mijn website.
Maar sinds ik een ssl certificaat heb werkt de zoekfunctie niet goed meer.
Altans de resultaten verschijnen pas als ik de pagina eenmaal herlaad.
Ik ben een noob op gebied van javascript maar misschien wil iemand van jullie mij helpen.
De javascriptcode heb ik van de volgende website gedownload:
zoekmachine
Alleen werkt het forum op deze site helaas niet meer.

De code ziet er als volgt uit:
z_input.html :


<script language="JavaScript" type="text/javascript">
    veld = null;
    function EnterOpvangen(veld, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
        if (keyCode == 13) {
                if (veld == z_form.elements[0])
                {search_form(z_form)}
                return false;}
        else return true;}     
   </script>
<input id="invoer" type="text" name="d" onkeypress="return EnterOpvangen(this, event)" value=""><br>
<input id="reset" type="reset" value="delete all">
<input id="button" type="button" value="search" name="search button" onClick="search_form(z_form)">


z_form.js :


var results_location = "z_output.php";
function search_form(z_form) {
   if (z_form.d.value.length > 0) {
       document.cookie = "d=" + escape(z_form.d.value);
       window.location = results_location;}}


z_data.js :


var sn = 0;
var s = new Array();

       // VOORBEELD -----------------------------------------------------------------------------------------------------------
s[sn++] =   /* AFBEELDING * /   '<img src="" alt="">^'+
       /* URL * /       '^<!-- leeg -->^'+
       /* ZOEKWOORDEN */       'zoek,woorden';
//hieronder niets wijzigen
var include_num = 0; // resultaten nummeren
var bold = 1; // vet weergeven
var cookies = document.cookie;
var p = cookies.indexOf("d=");
if (p != -1) {
   var st = p + 2;
   var en = cookies.indexOf(";", st);
   if (en == -1) {
       en = cookies.length;}
   var d = cookies.substring(st, en);
   d = unescape(d);}
var od = d;var m = 0;
if (d.charAt(0) == '"' && d.charAt(d.length - 1) == '"') {
   m = 1;}
var r = new Array();
var co = 0;
if (m == 0) {
   var woin = new Array();
   var w = d.split(" ");
   for (var a = 0; a < w.length; a++) {
       woin[a] = 0;
       if (w[a].charAt(0) == '-') {
           woin[a] = 1;}}
   for (var a = 0; a < w.length; a++) {
       w[a] = w[a].replace(/^\-|^\+/gi, "");}
   a = 0;
   for (var c = 0; c < s.length; c++) {
       pa = 0;
       nh = 0;
       for (var i = 0; i < woin.length; i++) {
           if (woin[i] == 0) {
               nh++;
               var pat = new RegExp(w[i], "i");
               var rn = s[c].search(pat);
               if (rn >= 0) {
                   pa++;} else {pa = 0;}}
           if (woin[i] == 1) {
               var pat = new RegExp(w[i], "i");
               var rn = s[c].search(pat);
               if (rn >= 0) {
                   pa = 0;}}}
       if (pa == nh) {
           r[a] = s[c];
           a++;}}
   co = a;}
if (m == 1) {
   d = d.replace(/"/gi, "");
   var a = 0;
   var pat = new RegExp(d, "i");
   for (var c = 0; c < s.length; c++) {
       var rn = s[c].search(pat);
       if (rn >= 0) {
           r[a] = s[c];
           a++;}}
   co = a;}
function return_query() {
   document.z_form.d.value = od;}
function num_jscript() {
   document.write(co);}
function out_jscript() {
   if (co == 0) {
       document.write('<b>Use other keywords or<br>');
       document.write('use more keywords or<br>');
       document.write('use cominations like:<br>');
       document.write('color of file, type of file, topic of file.<br>');
       document.write('and try again</b>');
       return;}
   for (var a = 0; a < r.length; a++) {
       var os = r[a].split("^");
       if (bold == 1 && m == 1) {
           var br = "<b>" + d + "</b>";
           os[2] = os[2].replace(pat, br);}
       if (include_num == 1) {
           document.write(a + 1, '. <a class="result" href="', os[1], '">', os[0], '</a>', os[2]);}
else {document.write('<a class="result" href="', os[1], '">', os[0], '</a>', os[2]);}}}


z_output.html :


<b><i>There were <script language="JavaScript1.3" type="text/javascript">num_jscript()</script> results found!</i></b>
   
<script language="JavaScript1.3" type="text/javascript">out_jscript()</script>



Ik hoop dat iemand mij kan helpen
Kan je de code tussen code-tags zetten? Dat maakt het wat beter leesbaarder.
Zelf vermoed ik dat er sprake is van 'mixed content' en dat je het pad naar je JS-bestand moet voorzien van een // als protocol. Dan wordt er gekeken of deze via HTTP of HTTPS wordt ingeladen.
Bedankt voor je reactie Ariën,

Hoe zou zo'n pad er dan uit moeten zien? Moet ik die // voor het pad plaatsen? want dat heb ik geprobeerd maar dan vind ie het js bestand niet meer.
Ik heb het ook geprobeerd met een absoluut pad. Dus https://pad/jsbestand.js maar hiermee is het nog steeds niet opgelost.

Bij mixed content verschijnt er meestal een uitroeptekentje bij het groene slotje in de url balk. Dat is nu ook niet het geval.
Wel apart.
Heb je een 'testcase' online staan?
Laatste aanpassingen: 05.08.2005

Misschien werkt dit alles voor wat je er mee wilt bereiken, maar wellicht wordt/is het tijd om over een nieuwe oplossing na te denken die wellicht ook wat gebruiksvriendelijker is (en niet afhankelijk van JS is)?
Het gaat fout op de regel
if(veld == z_form.elements[0])
Het 1e element in het form (met index 0) is namelijk de fieldset daarboven, en dus never nooit het "veld". Maar waarom controleer je dit hier? Deze functie is toch alleen maar gebonden aan dat "invoer" veld? Dan kun je deze controle net zo goed weglaten.
Bedankt voor je reactie Rob Doemaarwat,

Ik heb die controle eruit gehaald maar het probleem is nog niet opgelost.
Wat ik vergeten ben te vermelden is dat de zoekmachine wel goed werkt in localhost.
Volgens mij heb je iets te grof gesnoeid, want de hele functie "EnterOpvangen()" is nu weg. Je had alleen die if(...) regel weg moeten halen (en de evt. sluitende accolade).
Ik had het eerst geprobeerd zoals jij het zei maar dit had geen effect.
Ik heb de functie EnterOpvangen() er maar helemaal uitgehaald omdat deze niet werkte.
Nou, zet 'm dan maar weer terug, want nu hebben we niks meer om op te schieten.

Reageren