Wenn Sie jQuery verwenden, dann:
HTML:
<a id="openMap" href="/map/">link</a>
JS:
$(document).ready(function() {
$("#openMap").click(function(){
popup('/map/', 300, 300, 'map');
return false;
});
});
Dies hat den Vorteil, dass Sie weiterhin ohne JS arbeiten oder wenn die Benutzermitte auf den Link klickt.
Es bedeutet auch, dass ich generische Popups verarbeiten könnte, indem ich sie erneut umschreibe in:
HTML:
<a class="popup" href="/map/">link</a>
JS:
$(document).ready(function() {
$(".popup").click(function(){
popup($(this).attr("href"), 300, 300, 'map');
return false;
});
});
Auf diese Weise können Sie jedem Link ein Popup hinzufügen, indem Sie ihm einfach die Popup-Klasse geben.
Diese Idee könnte noch weiter erweitert werden:
HTML:
<a class="popup" data-width="300" data-height="300" href="/map/">link</a>
JS:
$(document).ready(function() {
$(".popup").click(function(){
popup($(this).attr("href"), $(this).data('width'), $(this).data('height'), 'map');
return false;
});
});
Ich kann jetzt das gleiche Stück Code für viele Popups auf meiner gesamten Site verwenden, ohne viele Onclick-Inhalte schreiben zu müssen! Ja für die Wiederverwendbarkeit!
Es bedeutet auch, dass ich Folgendes ändern kann, wenn ich später feststelle, dass Popups eine schlechte Praxis sind (was sie sind!) Und dass ich sie durch ein modales Fenster im Lightbox-Stil ersetzen möchte:
popup($(this).attr("href"), $(this).data('width'), $(this).data('height'), 'map');
zu
myAmazingModalWindow($(this).attr("href"), $(this).data('width'), $(this).data('height'), 'map');
und alle meine Popups auf meiner gesamten Website funktionieren jetzt völlig anders. Ich könnte sogar eine Feature-Erkennung durchführen, um zu entscheiden, was in einem Popup zu tun ist, oder die Präferenz eines Benutzers speichern, um sie zuzulassen oder nicht. Mit dem Inline-Onclick erfordert dies einen großen Aufwand beim Kopieren und Einfügen.