Javascript Jquery,url在<;上的每个函数中保持不变;a>;元素(用户脚本)

Javascript Jquery,url在<;上的每个函数中保持不变;a>;元素(用户脚本),javascript,jquery,html,Javascript,Jquery,Html,所以我有一个问题,我无法从用户脚本中获得使用ajax的页面html代码,因为页面首先只加载页面的一部分,所以从用户脚本执行ajax以获得整个页面html是不可能的。所以我使用了一个不可见的i框架来绕过这个问题。而且效果很好。但是我的url总是保持不变,我不知道为什么,我在一些 Senran-Kagura-Estival-VS_2015_07-13-15_005 tmntag.adTag(‘侧面’); 这在第二页。里面的图片。大类是我在主页上点击的图片,它有它的真实大小。img元素中的链接。大类

所以我有一个问题,我无法从用户脚本中获得使用ajax的页面html代码,因为页面首先只加载页面的一部分,所以从用户脚本执行ajax以获得整个页面html是不可能的。所以我使用了一个不可见的i框架来绕过这个问题。而且效果很好。但是我的url总是保持不变,我不知道为什么,我在一些

Senran-Kagura-Estival-VS_2015_07-13-15_005
tmntag.adTag(‘侧面’);
这在第二页。里面的图片。大类是我在主页上点击的图片,它有它的真实大小。img元素中的链接。大类是我必须使用的链接。所有其他图像都只是一些其他图像的小屏幕截图,我不必使用它们

解决方案 好的,最后我设法让它工作,只是为每个链接创建一个不同的iframe

var iFrameContainer = $('<div id="iFrameContainer" style = "display: none">').appendTo('body');
var-iFrameContainer=$('').appendTo('body');
然后在each函数中给它添加一个新的iframe

 var iFrame = $('<iFrame>').appendTo(iFrameContainer);
var-iFrame=$('').appendTo(iFrameContainer);
看起来您正在向每个迭代链接添加相同的url。尝试在图像上迭代


看起来您正在向每个迭代链接添加相同的url。尝试对图像进行迭代。

您可以尝试使用onload

 iFrame.on('load', function() {
       iFrame.load(function(){
                 link = iFrame.contents().find('.big').find('img').attr('src');
                 that.magnificPopup({
                     items: {
                         src: link
                     },
                     type: 'image',
                     closeOnContentClick: true,
                     mainClass: 'mfp-img-mobile',
                     image: {
                         verticalFit: true
                     }
                 });
             });
          });

你可以试试onload

 iFrame.on('load', function() {
       iFrame.load(function(){
                 link = iFrame.contents().find('.big').find('img').attr('src');
                 that.magnificPopup({
                     items: {
                         src: link
                     },
                     type: 'image',
                     closeOnContentClick: true,
                     mainClass: 'mfp-img-mobile',
                     image: {
                         verticalFit: true
                     }
                 });
             });
          });

我不明白。什么意思?在iframe上只有一个图像,我每次都会更改iframe的url。因为没有选择不同的图像,所以得到的是相同的SRC。也许有了
这个
范围,你就可以实现它。如果你不共享HTML代码,我们就看不到更多了。
在iframe上只有一个图像,我每次都会更改iframe的url
为什么会有这种奇怪的行为?您的问题与load()方法是异步的。“你们需要一个延迟的或者一个承诺。”MarcosPérezGude我也这么认为,iframe的异步方法。但我不知道如何在每次加载iframe时生成一个放大弹出函数。因为放大弹出函数在所有图像上都保持不变,如果我没有弄错,或者你制作了一个jsfiddle.com,或者你可以部分调试
link
变量。您可以创建
console.log(iFrame.contents())
以查看内容是否更改,然后创建
console.log(iFrame.contents().find('.big>img'))
查看img节点是否相同。我不明白。你是什么意思?在iframe上只有一个图像,我每次都更改iframe的url。你得到的是相同的SRC,因为你没有选择不同的图像。也许使用
这个
范围你可以实现它。如果你不共享HTML代码,我们就看不到更多。
在iframe上告诉我只有一个图像,我每次都会更改iframe的url
为什么会出现这种奇怪的行为?你的问题是与load()异步方法。你需要一个延迟或承诺。@MarcosPérezGude我也这么认为,iframe的异步方法。但我不知道如何在每次加载iframe时生成一个放大弹出函数。因为放大弹出函数在所有图像上都是一样的,如果我做对了,或者你生成了一个jsfiddle.com,或者你可以调试
link
变量在部分中,您可以创建
console.log(iFrame.contents())
以查看内容是否更改,然后创建
console.log(iFrame.contents().find('.big>img'))
查看img节点是否相同。请为此创建一个JSFIDLE?我们可以在另一个页面上创建一个JSFIDLE吗?您可以为此创建一个JSFIDLE吗?我们可以在另一个页面上创建一个JSFIDLE吗?它不会改变任何东西它不会改变任何东西
 var iFrame = $('<iFrame>').appendTo(iFrameContainer);
link = iFrame.contents().find('.big').find('img').attr('src');
 iFrame.on('load', function() {
       iFrame.load(function(){
                 link = iFrame.contents().find('.big').find('img').attr('src');
                 that.magnificPopup({
                     items: {
                         src: link
                     },
                     type: 'image',
                     closeOnContentClick: true,
                     mainClass: 'mfp-img-mobile',
                     image: {
                         verticalFit: true
                     }
                 });
             });
          });