2010-09-10 3 views
0

Quelqu'un pourrait-il expliquer pourquoi le script simple suivant ne fonctionne pas dans Firefox et comment puis-je le réparer?Problème lorsque j'essaie d'ouvrir le fichier et d'y écrire

<script type="text/javascript"> 
var w = window.open("a.php"); 
w.document.write("hello"); 
</script> 

Merci beaucoup

+1

Pourriez-vous vous exprimer sur "Ne fonctionne pas"? que ne fait-il pas que vous attendez de faire? – Jamiec

+0

@peSHIr. 'open' et' write' dans Javascript ne se réfèrent pas à file-io. N'ajoutez pas ceux-ci lorsque le PO n'a pas - cela ne fait qu'ajouter à la confusion ici. –

+0

Oups, désolé! Je m'abstiendrai d'éditer des choses dont je ne sais rien. N'a pas vraiment lu tout à travers: seulement répondre il a été parlé de fichier-io ..: -/ – peSHIr

Répondre

0

Je suis sûr que vous ne pouvez pas lire les fichiers/écriture en utilisant javascript car il est un langage côté client? Je peux être complètement faux si!

EDIT:

Essayez ce code:

var new_window, new_window_content = []; 
new_window_content.push('<html><head><title>New Window</title></head>'); 
new_window_content.push('<body>New Window</body>'); 
new_window_content.push('</html>'); 
new_window = window.open("", "", "status,height=200,width=200"); 
new_window.document.write(new_window_content.join('')); 

Cheers, Sean

+0

Hey, ne lisez-vous pas ce qui est demandé ici? Lisez attentivement la question avant de répondre. –

+0

désolé - le titre devrait être dans le sens de "ouvrir une fenêtre et écrire du contenu dedans". Le titre actuel sur un forum de programmation suggère le contraire. – seanxe

0

Pour les autres affichant des réponses ici: il ne cherche pas à ouvrir un fichier et y écrire - c'est impossible en javascript dans un navigateur. Ce qu'il essaie plutôt de faire avec le w.document.write, c'est d'écrire à la fin de la page Web qu'il vient d'ouvrir dans un navigateur.

Google Chrome dit ce code échoue:

>>> var w = window.open("http://www.google.co.uk"); 
undefined 
>>> w.document.write("lol"); 
TypeError: Cannot call method 'write' of undefined 

Vous devez d'abord ouvrir le flux de documents en utilisant document.open() - cela va ajouter une fonction write dans w.document:

<script type="text/javascript"> 
var w = window.open("a.php"); 
w.document.open(); 
w.document.write("hello"); 
w.document.close(); 
</script> 
+0

J'ai voté cela parce que la fonction document.write() n'est pas ce qu'il devrait utiliser ici. Voir la réponse de Dawn ci-dessous pour le meilleur moyen, c'est-à-dire ajouter "bonjour" à un élément DOM dans la nouvelle page. –

2

(sous la direction de améliore l'affichage de l'exemple de code)

DOM Le script est plus à jour et plus robuste.

par exemple.

var w = window.open("a.php"); 
w.onload = function(){//you could also use dom ready rather than onload but that is a longer script that I've not included here 
    var body = w.document.getElementsByTagName("body")[0]; 
    body.appendChild(document.createTextNode("bar")); 
} 
+0

C'est la bonne façon de le faire. –

Questions connexes