si (self.href! = "#")
Il y a votre problème. Les liens hrefs sont canalisés par le navigateur, donc un lien '#' sur la page 'http://www.example.com/' a un attribut href 'http://www.example.com/#' et ne correspond pas à la condition.
Évitez d'utiliser le nom 'self', car il est en conflit avec le nom de l'objet global (alias 'window'). Vous pouvez éviter le passage maladroit dans du « moi » en attribuant le gestionnaire de JavaScript:
document.getElementById('load').onclick= request;
au lieu de l'attribut onclick
, vous pouvez utiliser « ceci » dans la demande(). request() devrait également return false;
pour arrêter le lien suivi (faire défiler le navigateur vers le haut). Mieux encore serait d'utiliser un <button>
(ou <input type="button">
), parce que c'est un bouton d'action et non un lien que vous pourriez ouvrir dans une nouvelle fenêtre ou un signet. (Vous pouvez toujours utiliser CSS pour le faire ressembler moins à un bouton.)
N'utilisez pas setAttribute() pour le HTML, il a des problèmes dans IE sans rapport avec cette utilisation. Réglage element.id
était déjà bien.
Mais tout cela semble plutôt une façon étrange de faire ce que vous voulez faire dans tous les cas.
Quel navigateur utilisez-vous? –
Quel type de document utilisez-vous? –
Safari 4, comme j'ai testé dans d'autres aussi, et cela n'a pas fonctionné? – Homework