Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.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
除Firefox之外的所有浏览器中都存在Javascript错误_Javascript_Html_Ajax_Cross Browser - Fatal编程技术网

除Firefox之外的所有浏览器中都存在Javascript错误

除Firefox之外的所有浏览器中都存在Javascript错误,javascript,html,ajax,cross-browser,Javascript,Html,Ajax,Cross Browser,我正为这件事大发雷霆。我有一点javascript,它异步获取事件日历的数据。基本上,当你们点击一个月的某一天时,会弹出一个小界面,一个文本区域会被检索到的数据填充。此UI上有两个提交按钮:一个用于保存更改,另一个用于删除事件(如果存在)。我的目标是禁用“删除”按钮,除非文本区域填充了事件。这是我的密码: function editDialog(date,vis) { if(vis == "show") { var event="Loading...";

我正为这件事大发雷霆。我有一点javascript,它异步获取事件日历的数据。基本上,当你们点击一个月的某一天时,会弹出一个小界面,一个文本区域会被检索到的数据填充。此UI上有两个提交按钮:一个用于保存更改,另一个用于删除事件(如果存在)。我的目标是禁用“删除”按钮,除非文本区域填充了事件。这是我的密码:

function editDialog(date,vis)
{
    if(vis == "show")
    {
        var event="Loading...";

        if (window.XMLHttpRequest)
        { 
            xmlhttp=new XMLHttpRequest();
        }
        else
        {
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhttp.onreadystatechange=function()
        {

            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                event = xmlhttp.responseText;
            }
            document.getElementById('editwrapper').innerHTML="<div id='editdiv'>\
            <div><span class='bold'>"+date+" </span><div style='display: inline; float: right;'><a href='#' onclick=\"return editDialog('"+date+"','hide')\">Close</a></div><hr id='line'> \
            <form method='get' action='' onsubmit=\"return editDialog(this.newdate.value, 'show')\">\
            <label for='newdate'>Jump to: </label>\
            <input type='text' name='newdate' size='10'/>\
            <input type='submit' name='go' value='Go'>\
            </form>\
            <form style='display: inline;' action='' name='saveform' method='get' onsubmit='return instantUpdate(this.date.value,this.event.value)'>\
            <textarea name='event' rows='10' cols='40' onkeypress='saveform.edit.disabled=false'>"+event+"</textarea>\
            <input type='hidden' name='date' value='"+date+"'>\
            <input type='submit' name='edit' value='Save' disabled='disabled'></form> &nbsp; <form name='deleteform' style='display: inline; float: right;' action='' method='get' onsubmit=\"return instantUpdate(saveform.date.value,'')\"> <input name='deletebutton' value='Delete' type='submit'></form>\
            </div>\
            </div>";

            if(event=="" || event=="Loading...") document.deleteform.delete.disabled = true;
        }
        xmlhttp.open("GET","events.php?action=read&date="+date,true);
        xmlhttp.send(); } }

Firefox处理得很好,但Safari、Chrome、Opera和IE都很适合。对于未启用javascript的用户,它们会恢复到我的回退功能。我做错了什么?

多行字符串常量是非标准的。在其他浏览器中不能这样做

长字符串必须如下所示:

var longString = "something something something" +
  "more something something something " +
  "and so on";

我只是有个想法。由于
delete
是一个关键字,因此不应该将其用作表单字段名。在使用保留字方面,一些实现可能比其他实现更严格。尝试将其重命名为其他名称。

Chromes调试器说了什么?我实际上没有看。但我不太熟悉如何使用它。我看看能不能弄明白。啊,是的,jQuery。我很想使用它,但我想首先正确地学习javascript…@vince88:Jquery就是javascript。这只是一个框架。使用它。这真的很值得。不,我知道jquery是什么。但我想知道幕后发生了什么,而不是用易于使用的函数来掩盖一切。如果我接受了一个没有实现jQuery的项目呢?谢谢你的建议。我会记住的,但我认为这不是问题所在。我对它进行了修改,但没有什么不同。第5版中的ECMAScript标准中添加了行延续,因此所有浏览器都支持它还需要一段时间。是的,我知道它在v中。5但这对IE7没有帮助:-)是的,这就是它。我听取了其中一条评论的建议,并查看了Chrome的调试器。它说delete抛出了一个异常,所以我重命名了它,它现在可以工作了。谢谢。@vince-祝你好运,别忘了试用jQuery。
var longString = "something something something" +
  "more something something something " +
  "and so on";