小编典典

如何在页面加载之前在jQuery Mobile中禁用Ajax?

ajax

在我的手机网站上。我一直在尝试加载Adsense Mobile广告,但是在页面加载后,它们继续占据整个页面。

我确实发现,如果我禁用了ajax,则该页面将与广告一起很好地加载。这仅在我加载的第二页上有效,因为我单击了带有标签的链接…

data-ajax="false"

这样可以使下一页完美加载。

问题 :由于启用了Ajax,我认为adsense广告会覆盖加载的第一页。

基本上我页面的第一部分是这样的…

<html>
<head>

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0rc3/jquery.mobile-1.0rc3.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0rc3/jquery.mobile-1.0rc3.min.js"></script>
<script language="text/javascript">

      $(document).bind("mobileinit", function () {

            $.mobile.ajaxEnabled = false;

      });

</script>
</head>
<body>

    <div data-role="header">
        <h1>Angry Birds Cheats</h1>
    </div>



    <div data-role="content">

<div>
    <script type="text/javascript"><!--
  // XHTML should not attempt to parse these strings, declare them CDATA.
  /* <![CDATA[ */
  window.googleAfmcRequest = {
    client: '',
    format: '',
    output: '',
    slotname: '',
  };
  /* ]]> */
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_afmc_ads.js"></script>
</div>

我确实尝试禁用代码中的Ajax,但是我不认为这是因为广告仍然占据了整个页面…

我在想,也许我可以在某个页面上启动访问者,然后将他们重定向到非ajax页面。


阅读 255

收藏
2020-07-26

共1个答案

小编典典

签出与mobileinit事件绑定的文档:http
:
//jquerymobile.com/demos/1.0/docs/api/globalconfig.html

具体来说:

由于mobileinit事件是在执行后立即触发的,因此您需要在加载jQuery Mobile之前绑定事件处理程序。

这是绑定到mobileinit事件的正确格式:

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0rc3/jquery.mobile-1.0rc3.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
$(document).bind("mobileinit", function () {
    $.mobile.ajaxEnabled = false;
});
</script>
<script src="http://code.jquery.com/mobile/1.0rc3/jquery.mobile-1.0rc3.min.js"></script>

首先是jQuery Core(因此.bind()将可用),然后是mobileinit事件处理程序,然后是jQuery Mobile
js文件(这是最后一个,因此mobileinit将在触发事件之前设置事件处理程序)。

您可以mobileinit通过alert在函数中放入来测试当前事件处理程序是否未触发。

2020-07-26