在用户浏览器上从js文件中调用ajax

时间:2012-12-02 02:02:22

标签: javascript jquery ajax

我有一个用户名添加到他们自己的浏览器书签工具栏的书签,该工具栏从他们正在查看的页面收集图像。

我希望每次用户点击任何站点时都会记录并将数据存储在mysql表中。所以我正在使用ajax调用发布到一个处理发送给它的数据的php文件。

然而,这有时会起作用,有时却不起作用。意思是,它适用于某些网站,而不适用于其他网站。

我正在尝试的是:

(function()
{ // declare variables e.g. div.ids, div content etc then display it
......

    //log the click
    var dataString = '&url=' + encodeURIComponent(window.location.href) + '&page_title=' + encodeURIComponent(document.title);
    $.ajax({
    type: "POST", // form method
    url: "http://myurl.com/includes/log_clicks.php",// destination
    data: dataString,
    cache: false
    });
    //END log the click

})();

当它不起作用并且我使用Firebug找出原因时,我有时会收到错误:TypeError: $ is undefined $.ajax({

有时它仍会发布到php文件但没有数据

有没有更好的方法从用户浏览器的js文件中调用ajax?

根据建议,我尝试通过简单地修改其中一个变量来加载jquery:

div.innerHTML = '<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script><div class=....';

但这并没有什么区别

1 个答案:

答案 0 :(得分:1)

您需要在页面上显示jQuery才能执行此操作。如果不存在,您将需要加载jQuery。使用jQuerify代码概述了一个很好的方法here,它实际上只是加载了所需的jQuery功能的一部分。