Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止链接在模式窗口中加载整个网页?_Javascript_Jquery_Html_Ajax_Twitter Bootstrap - Fatal编程技术网

Javascript 如何防止链接在模式窗口中加载整个网页?

Javascript 如何防止链接在模式窗口中加载整个网页?,javascript,jquery,html,ajax,twitter-bootstrap,Javascript,Jquery,Html,Ajax,Twitter Bootstrap,我有个奇怪的问题。我的网页有大约50个标题,来自10或12个不同的网站。当用户单击任何一个标题(这是实际文章的链接)时,网页应该只在模式窗口中显示该文章的主要内容。除第一次单击外,它每次都有效。下面是包含XHR请求的网络选项卡的屏幕截图 如您所见,我单击的第一个链接加载了一个额外的XHR请求。这种行为并不特定于任何一个网站。第一次单击任何标题都会导致两个请求。第一次点击并不是指用户第一次点击某个标题。我指的是第一次点击任何标题 在上面的屏幕截图中,我首先点击了加载AJAX请求和实际链接的第三个

我有个奇怪的问题。我的网页有大约50个标题,来自10或12个不同的网站。当用户单击任何一个标题(这是实际文章的链接)时,网页应该只在模式窗口中显示该文章的主要内容。除第一次单击外,它每次都有效。下面是包含XHR请求的网络选项卡的屏幕截图

如您所见,我单击的第一个链接加载了一个额外的XHR请求。这种行为并不特定于任何一个网站。第一次单击任何标题都会导致两个请求。第一次点击并不是指用户第一次点击某个标题。我指的是第一次点击任何标题

在上面的屏幕截图中,我首先点击了加载AJAX请求和实际链接的第三个标题。然后我点击第一个标题,它没有导致任何额外的XHR请求。为了确保它不是某个网站特有的东西,我再次点击了第三个标题。这一次,没有额外的XHR请求。我使用了
e.preventDefault()
,它防止仅在第一次单击后加载额外请求

这是我的密码:

$('a.modal-link').on('click', openModal);
这是我的OpenModel函数:

function openModal(evt) {
  evt.preventDefault();
  var link = $(this).attr("href");
  var page = window.location.href.split('?')[0];
  var text = $(this).text();
  $.ajax({
    type: "POST",
    url: "path/to/getarticle.php",
    data: {
      link: link,
      page: page
    },
    success: function(markup) {
      $(".feed-modal .modal-body").html(markup);
    }
})

您应该提供其余的
openmodel
。如果页面被缓存,您可能看不到AJAX请求。我以前从未写过这样的东西。通常我会传递一个匿名函数作为第二个参数,比如
function(evt){/*your code*/}
@pcnate如果代码凌乱,我很抱歉。这是错误的做事方式吗?我是一个初学者。@cambuncive我正在添加完整的代码。啊,等等——看看第二个AJAX请求不是由您发起的,而是由那个9to5网站发起的?当你打开那个网站时,它本身就让XHR加载额外的内容——恐怕你对此无能为力。现在,你说这与你点击的网站无关。真的吗?第一次发送的XHR是否总是同一个,使用的是同一个启动器?或者,也许大多数网站都有自己的XHR,但出于某种原因,只有打开新模式后的第一个XHR才会出现在您的inspector窗口中?您应该提供其余的
OpenModel
。如果页面被缓存,您可能看不到AJAX请求。我以前从未写过这样的东西。通常我会传递一个匿名函数作为第二个参数,比如
function(evt){/*your code*/}
@pcnate如果代码凌乱,我很抱歉。这是错误的做事方式吗?我是一个初学者。@cambuncive我正在添加完整的代码。啊,等等——看看第二个AJAX请求不是由您发起的,而是由那个9to5网站发起的?当你打开那个网站时,它本身就让XHR加载额外的内容——恐怕你对此无能为力。现在,你说这与你点击的网站无关。真的吗?第一次发送的XHR是否总是同一个,使用的是同一个启动器?或者,也许大多数网站都有自己的XHR,但出于某种原因,只有在打开新模式后的第一个XHR才会出现在您的inspector窗口中?