当前位置: 首页 > 面试题库 >

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

席乐童
2023-03-14
问题内容

在我的手机网站上。我一直在尝试加载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页面。


问题答案:

签出与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在函数中放入来测试当前事件处理程序是否未触发。



 类似资料:
  • 我想用nodejs中的webdriver来控制一个使用ajax的网站,特别是它总是对服务器有http请求。 我还试图通过按浏览器窗口上的ESC来停止连接。之后,似乎可以立即运行。但我在WebDriver API中没有找到类似的函数。 那么有没有办法解决这个问题呢?任何一种都可以,比如: 无论页面是否加载,立即运行; 类似的webdriver api可以停止页面中的所有活动连接。 https://g

  • 我和我的团队有一个最初作为PWA构建的项目,但后来决定放弃这个想法,因为我们意识到它需要比最初预期的更频繁地更改。然而,服务工作者已经上线,以及网站新设计的登陆页面。尽管我们努力清除PWA缓存,但我们的客户仍然报告说他们收到了网站的旧缓存版本。 目前,我们已经设置了Service Worker,以便在安装时删除所有缓存(以及每当发生任何事情时作为预防措施),以及一些JavaScript,以便在新页

  • 问题内容: 我有一个PHP include,它需要一段时间才能加载,因为PHP必须获取很多数据。我不想放慢整个网页的加载,以等待包含此内容,那么如何使用ajax加载该包含内容呢?我不希望通过单击按钮来触发Ajax,而只是希望它在页面加载时加载包含,因此,如果您查看下面的示例,则会在显示内含代码的同时显示“更多HTML内容”。 php仍在加载中。 问题答案: 如果您使用的是jQuery,则可以使用他

  • 问题内容: 我正在尝试将MutationObserver设置为在加载时观察页面突变。 为此,应在页面加载之前配置MutationObserver。 使用selenium-chromedriver,找不到为此目的注入JS的方法。 我知道chrome扩展程序可以做到这一点,但扩展程序无法在无头模式下工作。 那就是问题所在。 问题答案: 通过调用DevTool API可以实现

  • 我有一个方法,可以为WebView的WebEngine设置一个新的网页,需要等到网页加载完成后才能继续使用当前方法。 基本上我想要: 我尝试过使用ChangeListener(),但它只会在我的方法完成执行后执行。我在谷歌上搜索了许多导致更多挫折感的术语,比如“java非阻塞等待布尔值”。最终,我成功地启动了新线程(以防止应用程序GUI锁定)并使用了倒计时(与Thread.join()相反)。下面

  • 我想在加载aboutme时调用servlet GetUserData。jsp页面。 基本上,它所做的是设置一个会话变量,允许用户查看其配置文件信息。 它设置了一个会话变量,因此它不需要调用任何东西,只需在页面加载时继续使用servlet。 这个servlet调用另一种方法来生成SQL语句并准备要发送的数据。 最后,在JSP页面上,我想使用先前声明的会话变量将所有信息(如登录名、密码等)打印到表中。