Html 使用MacOS向iframe bug提交表单
我有一个表单需要提交到iframe中。它在Windows和一些旧版本的Mac OS中工作得非常好。但它不适用于较新的版本。我已经用MacOSX Mountain Lion 10.8.3测试了它,但它不起作用。我的用户在不同的OS X版本上报告了相同的问题 代码如下:Html 使用MacOS向iframe bug提交表单,html,macos,forms,safari,osx-mountain-lion,Html,Macos,Forms,Safari,Osx Mountain Lion,我有一个表单需要提交到iframe中。它在Windows和一些旧版本的Mac OS中工作得非常好。但它不适用于较新的版本。我已经用MacOSX Mountain Lion 10.8.3测试了它,但它不起作用。我的用户在不同的OS X版本上报告了相同的问题 代码如下: <form action="https://nidieunimaitre.spreadshirt.com/shop/basket/addtobasket" style="padding: 0px;" method="p
<form action="https://nidieunimaitre.spreadshirt.com/shop/basket/addtobasket" style="padding: 0px;" method="post" target="formiframe" name="tshirt_form" id="tshirt_form">
<input type="hidden" name="product" id="productId" value="17695932"/>
<input type="hidden" name="article" id="articleId" value="7048248"/>
<input type="hidden" name="view" id="currentView7048248" value="351"/>
<input type="hidden" name="color" id="productColor7048248" value="2"/>
<input type="hidden" name="size" id="size" value="2"/>
<input type="hidden" name="quantity" id="quantity" value="1"/>
<a onclick="document.tshirt_form.submit()"
id="popupajouterpanier" href="#inlinepopupajouterpanier">Ajouter au panier</a>
<iframe src="" name="formiframe" id="formiframe" width="400" height="400"></iframe>
</form>
或者您可以在我的网站上进行现场测试:
表单应该将一件t恤添加到一个篮子中,然后显示篮子的页面以及刚刚添加的t恤。有了窗户,一切都很完美。
但是使用OSX10.8.3,当您提交表单时,它只会将篮的页面加载到iframe中,但篮仍然是空的!!看起来表单没有正确发送数据
当我使用OSX10.8.3进行测试时,这个错误只发生在Safari上。该表单与Firefox配合使用。
但我的一些用户报告说,无论他们使用Safari还是Firefox,这项工作在OSX下都不起作用
请注意,这是跨域的(不确定是否重要)。该页面正在将表单数据发送到另一个域(spreadshirt.com's basket)
如果我不将表单提交到iframe中,它将起作用
更新:表单的操作目标是spreadshirt.com basket。我只是注意到,如果我在提交表单之前使用Safari访问此页面,那么在提交到iframe时它将起作用!!!如果我不先访问spreadshirt.com网站,Safari似乎不想创建cookie。但我不明白为什么它不适用于其他浏览器,为什么这个bug只影响iFrame。。。有工作吗?
根据另一个主题,这似乎是一个跨域cookie问题:
更新#2:将Safari的配置设置为从不阻止Cookie似乎可以解决问题。默认值为“阻止第三方cookie”。除了要求我的用户更改他们的设置之外,还有什么解决方法吗?请参阅我的问题是Safari。歌剧里的一切都很管用。我的问题与iframe直接相关。如果表单没有提交到iframe,那么它可以完美地工作,因此表单的代码没有问题。。这家伙说他通过向表单元素添加name属性解决了他的问题。在我的情况下,表单的所有元素都有name属性,所以这个解决方案对我的情况完全没有用处。