2016-03-25 8 views
0

Diese Funktion lädt grundsätzlich die Seite, die ?var=foo hinzufügt, zu der URL, so dass die neu geladene Seite aussieht. http://midomain.com/mypage.php?var=foowindow.location + custom window.location.search

pub.reload = function() { 
    var loc = window.location; 
    window.location = loc.protocol + '//' + loc.host + loc.pathname + "?var=foo";; 
}; 

Es funktioniert, wenn ich die Funktion von der JS-Konsole aufrufen ..

Aber überraschend ist es nicht funktioniert, wenn ich es von einer Schaltfläche im HTML nennen. <button onclick="pub.reload()">
Bei diesem Aufruf wird die Seite neu geladen, aber die zusätzliche Zeichenfolge wird nicht zur URL hinzugefügt. (getestet an CH und FF) Ich ziehe mir die Haare und versuche herauszufinden, warum solch einfache Funktionen auf zwei unterschiedliche Arten wirken, je nachdem, wer sie anruft.

Antwort

0

Sind Sie sicher? Es scheint mir gut zu gehen.

<script> 

var pub = {}; 

pub.reload = function() { 
    var loc = window.location; 
    window.location = loc.protocol + '//' + loc.host + loc.pathname + "?var=foo"; 
}; 

</script> 

<button onclick="pub.reload()">Click me</button> 

:) Sie wahrscheinlich vergessen, die Variable "pub", ein Objekt zu machen, denn wenn man nur var pub; haben Sie einen Fehler definieren .reload bekommen würde: mypage.php var = foo: 5 Uncaught Typeerror: kann nicht gesetzt Eigenschaft 'reload' undefinierten

+0

Pub ist es, da die Funktion auf diese Weise gewickelt ist (function (Pub, $, undefined) { ... }) (pub = window.pub || {} , jQuery); – palermuke

+0

Wie auch immer Ihr Code funktioniert, so muss das Problem da sein – palermuke

+0

oh Entschuldigung, ich bin nicht wirklich vertraut mit JQuery, aber ich bin zuversichtlich, dass Pub kein Objekt ist, dann hoffe das hilft Ihnen, es herauszufinden –