我在Safari 9上遇到js问题 我的代码:
const subscribeForm = document.querySelector('#subscribeForm');
subscribeForm.addEventListener('submit', function (e) {
e.preventDefault();
fetch(this.action + '?action=subscribe&email=' + this[0].value + '&site=' +<? print $this->id_site ?>)
.then((r) => {
return r.json();
})
.then((r) => {
this.insertAdjacentHTML('afterend', `<p>${r.response}</p>`)
});
});
错误语法错误:意外的令牌'>'
请给我一些想法 在其他浏览器上都可以。
答案 0 :(得分:0)
查看can I use的Safari 9不支持箭头功能,请改用function() {
。 Safari 10中还添加了与template literals where added in 9.1和fetch相同的const和unfetch,要进行提取,您可以使用insertAdjacentHTML之类的polyfill。
因此您的代码应如下所示:
<script src="https://unpkg.com/unfetch/polyfill"></script>
<script>
var subscribeForm = document.querySelector('#subscribeForm');
subscribeForm.addEventListener('submit', function (e) {
e.preventDefault();
fetch(this.action + '?action=subscribe&email=' + this[0].value + '&site=' +<? print $this->id_site ?>)
.then(function(r) {
return r.json();
})
.then(function(r) {
this.insertAdjacentHTML('afterend', '<p>' + r.response + '</p>');
});
});
</script>
您还需要对Safari 10中添加的polyfill进行操作,可以尝试{{3}}。