无法在javascript中调用同步函数
我正在制作一个网络应用程序。其中一部分,我想将js变量传输到php,以将本地保存的用户数据与internet上的数据同步 这是HTML代码:无法在javascript中调用同步函数,javascript,php,ajax,Javascript,Php,Ajax,我正在制作一个网络应用程序。其中一部分,我想将js变量传输到php,以将本地保存的用户数据与internet上的数据同步 这是HTML代码: <li><a onclick="sync();">Sync</a></li> 这是php部分: <?php echo $tags; console.log($tags); return $tags; ?> 怎么了?我该怎么办?您很可能在子范围内而不是全局范围内定义了所述函数。快速修复方法是将其
<li><a onclick="sync();">Sync</a></li>
这是php部分:
<?php
echo $tags;
console.log($tags);
return $tags;
?>
怎么了?我该怎么办?您很可能在子范围内而不是全局范围内定义了所述函数。快速修复方法是将其添加到窗口:
(function () { // this is an example of what could cause it to be in a child scope
function sync () {
...
}
window.sync = sync;
})();
但是我建议您不要使用内联事件处理程序。问题是,在单击定位点时,函数
sync
在全局范围内不存在
onclick
和其他事件属性通常被认为是不好的做法,您应该使用JavaScript代码中的事件侦听器,如下所示:
var button = document.getElementById("sync");
button.addEventListener("click", sync, false);
注意:在加载DOM后初始化此脚本非常重要,最简单的方法是在关闭body标记之前将其放入
并按如下方式更改您的HTML:
<li><a href="#" id="button">Sync</a></li>
有关事件侦听器的更多信息,请参见:
您必须注意一些浏览器兼容性问题,尤其是旧版本的Internet Explorer,该页面上提供了垫片。请执行以下操作:
1) 将下面提到的js代码保存在调用sync()函数的同一文件中
<script type="text/javascript">
</script>
如果您在控制台日志中看到“hi”,请用您的代码替换上述代码。您很可能在子作用域中而不是全局定义了上述函数。请尝试添加
sync()
在js文件中,函数所在的位置只是为了确保错误不是来自函数,并查看控制台错误日志,上面写着什么//IE6、IE5的代码
对不起,兄弟……那么,在页面的标记中,函数sync是在哪里定义的呢?
<li><a href="#" id="button">Sync</a></li>
function sync(e) {
e.preventDefault();
// Rest of your function
}
<script type="text/javascript">
</script>
function sync(){
console.log("hi");
}