Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅弹出Javascript_Javascript - Fatal编程技术网

仅弹出Javascript

仅弹出Javascript,javascript,Javascript,是否可以仅使用JavaScript创建带有输入文本的弹出窗口 我必须创建一个像提示一样的弹出窗口 var email = prompt("Texts1", "Email"); if(email === null ) { return; } (...) //something get the value from email 我的问题是提示中的文本1太长,窗口无法全部显示。我只能使用/更改JavaScript(HTML中没有任何内容!)。

是否可以仅使用JavaScript创建带有输入文本的弹出窗口

我必须创建一个像提示一样的弹出窗口

var email = prompt("Texts1", "Email");

        if(email === null ) {
            return;
        }
(...) //something get the value from email

我的问题是提示中的文本1太长,窗口无法全部显示。我只能使用/更改JavaScript(HTML中没有任何内容!)。

为什么必须只使用JavaScript?如果您想更多地控制弹出窗口的工作方式和外观,您可以创建一个简单的html对话框,并仅在必要时显示它


您无法编辑本机javascript提示/警报的显示方式。

如果您确实需要使用弹出窗口,您可以使用
\n
打断这一行,这可能会对您有所帮助。但在我看来,你会更满意使用所谓的“情态动词”。模态类似于一个弹出窗口,用HTML编写。你可以在任何需要的时候展示它。它只是简单的HTML,如:

<div id="modal-1">
    <form>
        <!-- your form input etc. -->
    </form>
</div>

如果您已经准备好了,只需修改
document.getElementById('modal-2').style.display='block',就可以使用所需的任何事件触发它
在事件的回调中。

您可以创建一个
隐藏div,其中包含要在某个事件上显示的文本,如如果电子邮件字段为空,则使用纯JavaScript,如:

编辑

如果您不能更改html,那么可以显示multile js警报,如

alert("Hello! This is the way to \n add line breaks to an alert box");
结束编辑

var modal=document.getElementById('myModal');
var btn=document.getElementById(“myBtn”);
var span=document.getElementsByClassName(“关闭”)[0];
btn.onclick=函数(){
var x=document.forms[“myForm”][“email”].value;
如果(x==“”){
modal.style.display=“块”;
}
}
span.onclick=函数(){
modal.style.display=“无”;
}
window.onclick=函数(事件){
如果(event.target==模态){
modal.style.display=“无”;
}
}
.modal{
显示:无;/*默认情况下隐藏*/
位置:固定;/*保持原位*/
z指数:1;/*位于顶部*/
填充顶部:100px;/*框的位置*/
左:0;
排名:0;
宽度:100%;/*全宽*/
高度:100%;/*全高*/
溢出:自动;/*根据需要启用滚动*/
背景色:rgb(0,0,0);/*回退色*/
背景色:rgba(0,0,0,0.4);/*黑色w/不透明度*/
}
/*模态内容*/
.模态内容{
背景色:#fefe;
保证金:自动;
填充:20px;
边框:1px实心#888;
宽度:80%;
}
开放模式
&时代;
电子邮件字段为空


这是不可能的。您需要html,但可以使其独立于网站内容:

function ask(question,callback){
  var container=document.createElement("div");
container.textContent=question;
var field=document.createElement("textarea");
container.appendChild(field);
var ok=document.createElement("button");
container.appendChild(ok);
ok.onclick=function(){
  callback(field.value);
};
document.body.appendChild(container);
return {container:container,field:field,ok:ok};
}
这样使用:

window.onload=function(){
  //make shure the js is executed after the page is loaded completely
  var question=ask("whats your name?",function(name){
    alert(name);
  });
您可以添加自定义样式:

question.container.style.backgroundColor="red";

但是,这不是作为提示符()同步,因此需要回调。希望它有助于……

思考“太长”的确切含义。您可以使用\n将其打断到下一行。或者创建一个模拟与提示符相同行为的模式,就像bootstrap或jqueryui所做的那样。。。让它们显示:无,并用jsTexts1>=30个字符来更改。使用提示文字不会完整显示(仅20 ish)这是一条评论,不是回答,因为它是这么说的。。我什么都不能用else@Jonasw我认为最后一行可以算作答案。@JohnJohn:你必须意识到javascript可以在HTML中插入任何内容。所以不需要“无html”,因为这根本没有意义。如果一个解决方案要求您拥有
,只需执行
document.body.innerHTML+=”
(或者更好,使用document.createElement和document.body.appendchild,但这并不是严格必要的)@JohnJohn,就可以想出一个更好的解决方案,而不是“无法完成”我问了一个问题,看看是否能给你带来进一步的帮助。以及给你一个同样有效的选择。
question.container.style.backgroundColor="red";