仅限iOS的问题:通过AJAX加载<script>的HTML将无法执行

时间:2017-12-25 19:05:48

标签: javascript jquery html ios ajax

以下代码应该在 content-container div中加载 innerStuff.html 。然后, innerStuff.html 中另一个名为 submit_entry()的脚本用于提交 innerStuff.html 的表单。

&# xA;&#xA;

我得到了什么:单击按钮时, innerStuff.html 中的 submit_entry()(通过AJAX加载) )将在任何浏览器上执行,除了iOS上的那些

&#xA;&#xA;

据我所知,这是我唯一的问题可以在iOS上遇到。当使用任何其他平台时,该功能可以使用。

&#xA;&#xA;

index.html

&#xA;&#xA ;
  //上面的普通HTML内容&#xA;&lt; div id =“content-container”&gt;&lt; / div&gt;&#xA; //普通HTML内容&#xA;&lt; script&gt;& #xA; getStuff = function(filename){&#xA; $ .ajax({&#xA; type:“POST”,&#xA; url:“https://website.com/ajax/",
 data:{&#xA;'name':filename& #xA;},&#xA;成功:函数(数据){&#xA; $('#content-container')。animate({opacity:'0'},250,function(){$('# content-container')。html(data);});&#xA; $('#content-container')。animate({opacity:'1'},250);&#xA;}&#xA; });&#XA;};&#XA;&#XA; getStuff( 'innerStuff'); //获取innerStuff.html&#xA;&lt; / script&gt;&#xA;  
&#xA;&#xA;

innerStuff.html

&#xA;&#xA;
 &lt; div id =“form-container”&gt;&#xA; &lt; form enctype =“multipart / form-data”method =“post”id =“form”&gt;&#xA; //这里的普通表单(&gt; 5个元素)&#xA; &LT; /形式&GT;&#XA; &lt; button id =“submit-btn”onclick =“javascript:submit_form();”&gt;提交&lt; / button&gt;&#xA; &LT;脚本&GT;&#XA; form ['2']。value =“Something”; //默认值(表单有> 5个元素,是网站上唯一的表单)&#xA; submit_form = function(){&#xA;提醒(“提交表格。请稍候......”);&#xA; $ .ajax({&#xA; url:“https://website.com/submitform/",
 type:”POST“,// https method&#xA; data:new FormData(form),& #xA; contentType:false,&#xA; processData:false,&#xA;&#xA; //处理成功的响应&#xA;成功:function(json){&#xA; if(json ['result' ] =='错误'){&#xA; alert(json);&#xA;}&#xA; else {&#xA; alert('Submission successfull!');&#xA;}&#xA; },&#xA;&#xA; //处理不成功的响应&#xA;错误:函数(xhr,errmsg,err){&#xA; if(xhr.status == 0){&#xA;警告(“我们似乎无法与服务器通话。\ n请重新连接并重试。”);&#xA;}&#xA;否则{&#xA;警告(“哎呀!我们遇到过错误:“+ xhr.status +”\ n详细信息:“+ xhr.responseText);&#xA; }&#XA; }&#XA; });&#XA; };&#XA; &LT; /脚本&GT;&#XA;&LT; / DIV&GT;&#XA;  
&#XA;

2 个答案:

答案 0 :(得分:0)

尝试将按钮光标设置为这样的指针。

#submit-btn {cursor: pointer;}

听起来很奇怪我知道,但是iOS上有一些奇怪的错误,包括onClick();

答案 1 :(得分:0)

试试这个:

<script>
getStuff = function(filename){
    $.ajax({
        type: "POST",
        url: "https://website.com/ajax/",
        data: {
            'name': filename
        },
        success : function(data){
            $('#content-container').animate({opacity: '0'}, 250, function(){
				$('#content-container').html(data);
				/* Add this */
				var arr = $('#content-container')[0].getElementsByTagName('script')
				for (var n = 0; n < arr.length; n++)
				eval(arr[n].innerHTML)
			});
            $('#content-container').animate({opacity: '1'}, 250);
        }
    });
};

getStuff('innerStuff'); //Gets innerStuff.html
</script>