Non, navigateurs permettent seulement d'une seule ligne d'entrée pour prompt(). Cependant, avec un simple changement de la jQuery boîtes de dialogue d'Alerte bibliothèque, vous pourriez obtenir une saisie à plusieurs lignes. Prendre jquery.alerts.js, recherchez <input type="text" size="30" id="popup_prompt" /> et de la remplacer par <textarea rows="5" cols="30" id="popup_prompt"></textarea>. Que doit faire pour avoir un multi-ligne de champ de saisie apparaître lors de l'appel de jPrompt().
Modifier: Comme Mulletfingers999 souligne dans un commentaire, jQuery Alerte boîtes de dialogue ont été dépréciée en faveur de jQuery UI boîtes de dialogue. De là, vous pouvez également afficher un "modal" de dialogue, ce dialogue peut avoir contenu arbitraire toutefois - ce qui signifie qu'une <textarea> balise est possible si vous voulez multi-ligne d'entrée.
Pour les nouveaux téléspectateurs: le plugin a été archivé, le développeur recommande de jQuery UI boîte de dialogue widget Merci, j'ai mis à jour la réponse. aimerais éviter de jquery depuis que je suis en utilisant cela comme un simple javascript bookmarklet. Ensuite, vous devez reproduire la fonctionnalité de - superposition de la page avec votre couche et ajouter rapidement du contenu. Pas tout à fait triviaux malheureusement. Viens de réaliser que vous êtes le 7-zip auteur. Merci 🙂 Aussi, je l'ai fait à l'aide de document.open(),document.write(), et la <script> tag. Immense douleur, mais il fonctionne.
Utilisation \n enfermé dans des guillemets doubles ("\n")
prompt("This\nis\nmultiline");
Qui rend le texte multiligne, mais je pense qu'il est après la zone de saisie lui-même... Ah, d'où l'expression "zone de texte". Bon point! Alex, je veux dire textbox comme zone de saisie. Dans ce cas, aucune. L'invite est un navigateur natif de l'objet et en tant que telle n'est pas directement modifiable. Vous seriez mieux de créer votre propre en utilisant jQuery ou quelque chose de similaire 🙂
Pour à peu près tous les utilisateurs de l'application web ces jours-ci, vous allez vouloir éviter d'utiliser maladroit vieux boîtes de dialogue comme alert() et prompt(). Presque toute la bibliothèque que vous utilisez doit avoir une bien meilleure réponse. jquery serait bien, comme d'autres l'ont dit. Il serait également bon de penser à comment vous pouvez éliminer une nécessité pour la modalité en concevant un de plus intelligent interface.
"Intéressant", dans Firefox, ils sont déjà en utilisant XUL et réinventer beaucoup de l'interface utilisateur basée sur des qui au lieu de compter sur les "boîtes de dialogue courantes" de l'OS sous-jacent). Il y a un modèle pour les boîtes de dialogue modales dans /source/toolkit/components/prompts/content/tabprompts.xml:
Ce qu'ils font est juste cacher les éléments de l'INTERFACE utilisateur qu'ils n'ont pas besoin. Dans le cas d'un appel à prompt, ils se sont re-utiliser le champ de nom d'utilisateur et de garder le mot de passe et de la case des éléments cachés. Vous pouvez voir ce qui se passe dans /source/toolkit/components/invites/src/CommonDialog.jsm#52:
case"prompt":this.numButtons =2;this.iconClass =["question-icon"];this.soundID =Ci.nsISound.EVENT_PROMPT_DIALOG_OPEN;this.initTextbox("login",this.args.value);//Clear the label, since this isn't really a username prompt.this.ui.loginLabel.setAttribute("value","");break;
Puisque c'est plus ou moins en HTML, la seule question est ce que la non-standard tag <textbox> moyen de l'interface utilisateur. Le XUL la documentation des contrôles nous informe que c'est seulement une ligne d'entrée, vous auriez besoin d' <textarea> pour plus d':
J'ai pensé qu'il serait "amusant" de veiller à la mise en œuvre de Chrome sur le dessus de GTK. Après un peu de creuser par le biais de la tortueux des wrappers de WebKit, j'ai réussi à trouver chrome/src/chrome/navigateur/ui/gtk/js_modal_dialog_gtk.cc, plus particulièrement, la présente partie:
//Adjust content area as needed. Set up the prompt text entry or//suppression check box.if(ui::MessageBoxFlags::kIsJavascriptPrompt == dialog_->dialog_flags()){GtkWidget* content_area =
gtk_dialog_get_content_area(GTK_DIALOG(gtk_dialog_));GtkWidget* text_box = gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(text_box),
UTF16ToUTF8(dialog_->default_prompt_text()).c_str());
gtk_box_pack_start(GTK_BOX(content_area), text_box, TRUE, TRUE,0);
g_object_set_data(G_OBJECT(gtk_dialog_), kPromptTextId, text_box);
gtk_entry_set_activates_default(GTK_ENTRY(text_box), TRUE);}
La text_box est créé avec gtk_entry_new() et la La documentation de GTK états qui GtkEntry est "Une seule ligne de texte champ de saisie". Pour le multi-ligne d'entrée, vous auriez à utiliser GtkTextView:
Donc il n'y a que votre réponse n'est pas simplement de "pouvez-vous?", mais le tabagisme canons de laquelle vous ne pouvez pas (dans un couple de navigateur populaire implémentations.) Sauf si il y a un moyen de passer outre à cette XUL dans Firefox avec l'extension d'un certain type, qui il peut bien être! Je vais le laisser comme un exercice pour le lecteur. 😛
<textbox> peut être multi-ligne et une seule ligne. Ici, il est d'une seule entrée de ligne toutefois, en raison de la multiline l'attribut est manquant. Notez que les boîtes de dialogue commune vous avez trouvé ne sont pas pertinents pour le web comme Firefox 4 - ils ont été remplacés par des tabulations des boîtes de dialogue modales qui sont mises en œuvre ailleurs (mais dans le même sens). Merci pour la lecture sur elle. Je ferai remarquer que, en août 2011, Firefox 3.6 est encore 30.28% des utilisateurs de Firefox afin de ne pas "sans intérêt pour le web". Je ne prends aucune responsabilité pour omission, dans le XUL docs, qui je me suis lié. C'était ma première fois de creuser dans ces bases de code, pour ma propre curiosité, sous prétexte de répondre à une question avec plus de glib "non vous ne pouvez pas." J'ai passé un peu de temps de fouiller pour essayer de le faire d'une extension de l'emportait sur l'invite aujourd'hui, mais il a décidé d'essayer de le faire dans Firefox 6 et il semble que la plupart des "comment faire une extension" tutoriels sont pourries. Les docs que vous avez accédé à la liste à la fois <textbox> et <textbox multiline="true"/>. 🙂 De toute façon, les tutoriels devrait toujours être bon dans la mesure régulière de XUL superpositions aller rien n'a changé beaucoup. Mais vous n'obtiendrez pas trop loin avec les superpositions parce que le code pertinent de s'installer dans un XBL de liaison (tabprompts.xml) et le changement que l'on est un peu plus compliqué. Oh line, comment vous me narguer. Tu sais, j'ai fait faire un tas de recherche, puis après le fait de revenir et de trouver les documents que je croyais la même chose, mais peut-être différent après tout. De toute façon, il devient source de confusion si elle implique fortement une caractéristique distinctive et puis plus tard jette dans une "mais...!" vrai, prompt() est vieillot mais pour les favoris, c'est super simple à utiliser. (notez aussi qu'en 2015, malheureusement, Mozilla a décidé de déprécier XUL - une véritable tragédie).
Non, navigateurs permettent seulement d'une seule ligne d'entrée pour
prompt()
. Cependant, avec un simple changement de la jQuery boîtes de dialogue d'Alerte bibliothèque, vous pourriez obtenir une saisie à plusieurs lignes. Prendrejquery.alerts.js
, recherchez<input type="text" size="30" id="popup_prompt" />
et de la remplacer par<textarea rows="5" cols="30" id="popup_prompt"></textarea>
. Que doit faire pour avoir un multi-ligne de champ de saisie apparaître lors de l'appel dejPrompt()
.Modifier: Comme Mulletfingers999 souligne dans un commentaire, jQuery Alerte boîtes de dialogue ont été dépréciée en faveur de jQuery UI boîtes de dialogue. De là, vous pouvez également afficher un "modal" de dialogue, ce dialogue peut avoir contenu arbitraire toutefois - ce qui signifie qu'une
<textarea>
balise est possible si vous voulez multi-ligne d'entrée.Merci, j'ai mis à jour la réponse.
aimerais éviter de jquery depuis que je suis en utilisant cela comme un simple javascript bookmarklet.
Ensuite, vous devez reproduire la fonctionnalité de - superposition de la page avec votre couche et ajouter rapidement du contenu. Pas tout à fait triviaux malheureusement.
Viens de réaliser que vous êtes le 7-zip auteur. Merci 🙂 Aussi, je l'ai fait à l'aide de
document.open()
,document.write()
, et la<script>
tag. Immense douleur, mais il fonctionne.OriginalL'auteur Wladimir Palant
Utilisation \n enfermé dans des guillemets doubles ("\n")
Ah, d'où l'expression "zone de texte". Bon point!
Alex, je veux dire
textbox
comme zone de saisie.Dans ce cas, aucune. L'invite est un navigateur natif de l'objet et en tant que telle n'est pas directement modifiable. Vous seriez mieux de créer votre propre en utilisant jQuery ou quelque chose de similaire 🙂
OriginalL'auteur Alex
Pour à peu près tous les utilisateurs de l'application web ces jours-ci, vous allez vouloir éviter d'utiliser maladroit vieux boîtes de dialogue comme
alert()
etprompt()
. Presque toute la bibliothèque que vous utilisez doit avoir une bien meilleure réponse. jquery serait bien, comme d'autres l'ont dit. Il serait également bon de penser à comment vous pouvez éliminer une nécessité pour la modalité en concevant un de plus intelligent interface."Intéressant", dans Firefox, ils sont déjà en utilisant XUL et réinventer beaucoup de l'interface utilisateur basée sur des qui au lieu de compter sur les "boîtes de dialogue courantes" de l'OS sous-jacent). Il y a un modèle pour les boîtes de dialogue modales dans /source/toolkit/components/prompts/content/tabprompts.xml:
Ce qu'ils font est juste cacher les éléments de l'INTERFACE utilisateur qu'ils n'ont pas besoin. Dans le cas d'un appel à
prompt
, ils se sont re-utiliser le champ de nom d'utilisateur et de garder le mot de passe et de la case des éléments cachés. Vous pouvez voir ce qui se passe dans /source/toolkit/components/invites/src/CommonDialog.jsm#52:Puisque c'est plus ou moins en HTML, la seule question est ce que la non-standard tag
<textbox>
moyen de l'interface utilisateur. Le XUL la documentation des contrôles nous informe que c'est seulement une ligne d'entrée, vous auriez besoin d'<textarea>
pour plus d':https://developer.mozilla.org/en/XUL_controls
J'ai pensé qu'il serait "amusant" de veiller à la mise en œuvre de Chrome sur le dessus de GTK. Après un peu de creuser par le biais de la tortueux des wrappers de WebKit, j'ai réussi à trouver chrome/src/chrome/navigateur/ui/gtk/js_modal_dialog_gtk.cc, plus particulièrement, la présente partie:
La text_box est créé avec
gtk_entry_new()
et la La documentation de GTK états quiGtkEntry
est "Une seule ligne de texte champ de saisie". Pour le multi-ligne d'entrée, vous auriez à utiliserGtkTextView
:http://developer.gnome.org/gtk/2.24/GtkTextView.html
Donc il n'y a que votre réponse n'est pas simplement de "pouvez-vous?", mais le tabagisme canons de laquelle vous ne pouvez pas (dans un couple de navigateur populaire implémentations.) Sauf si il y a un moyen de passer outre à cette XUL dans Firefox avec l'extension d'un certain type, qui il peut bien être! Je vais le laisser comme un exercice pour le lecteur. 😛
<textbox>
peut être multi-ligne et une seule ligne. Ici, il est d'une seule entrée de ligne toutefois, en raison de lamultiline
l'attribut est manquant. Notez que les boîtes de dialogue commune vous avez trouvé ne sont pas pertinents pour le web comme Firefox 4 - ils ont été remplacés par des tabulations des boîtes de dialogue modales qui sont mises en œuvre ailleurs (mais dans le même sens).Merci pour la lecture sur elle. Je ferai remarquer que, en août 2011, Firefox 3.6 est encore 30.28% des utilisateurs de Firefox afin de ne pas "sans intérêt pour le web". Je ne prends aucune responsabilité pour omission, dans le XUL docs, qui je me suis lié. C'était ma première fois de creuser dans ces bases de code, pour ma propre curiosité, sous prétexte de répondre à une question avec plus de glib "non vous ne pouvez pas." J'ai passé un peu de temps de fouiller pour essayer de le faire d'une extension de l'emportait sur l'invite aujourd'hui, mais il a décidé d'essayer de le faire dans Firefox 6 et il semble que la plupart des "comment faire une extension" tutoriels sont pourries.
Les docs que vous avez accédé à la liste à la fois
<textbox>
et<textbox multiline="true"/>
. 🙂 De toute façon, les tutoriels devrait toujours être bon dans la mesure régulière de XUL superpositions aller rien n'a changé beaucoup. Mais vous n'obtiendrez pas trop loin avec les superpositions parce que le code pertinent de s'installer dans un XBL de liaison (tabprompts.xml) et le changement que l'on est un peu plus compliqué.Oh line, comment vous me narguer. Tu sais, j'ai fait faire un tas de recherche, puis après le fait de revenir et de trouver les documents que je croyais la même chose, mais peut-être différent après tout. De toute façon, il devient source de confusion si elle implique fortement une caractéristique distinctive et puis plus tard jette dans une "mais...!"
vrai,
prompt()
est vieillot mais pour les favoris, c'est super simple à utiliser. (notez aussi qu'en 2015, malheureusement, Mozilla a décidé de déprécier XUL - une véritable tragédie).OriginalL'auteur HostileFork