Javascript 如何强制用户必须在iframe中滚动pdf

Javascript 如何强制用户必须在iframe中滚动pdf,javascript,jquery,Javascript,Jquery,我在iframe中有一个pdf文件。我希望用户在提交表单之前必须在pdf文件中滚动。我正在尝试这个 var position = $('#myIframe').contents().scrollTop(); 但不起作用。请先帮我谢谢。我已经为您的解决方案做了准备。您可以禁用用户的提交按钮,直到用户在iframe上滚动 function getFrameTargetElement(objI) { var objFrame = objI.contentWindow; if (windo

我在iframe中有一个pdf文件。我希望用户在提交表单之前必须在pdf文件中滚动。我正在尝试这个

var position = $('#myIframe').contents().scrollTop();  
但不起作用。请先帮我谢谢。

我已经为您的解决方案做了准备。您可以禁用用户的提交按钮,直到用户在iframe上滚动

function getFrameTargetElement(objI) {
  var objFrame = objI.contentWindow;
  if (window.pageYOffset == undefined) {
    objFrame = (objFrame.document.documentElement) ? objFrame.document.documentElement : objFrame = document.body;
  }
  return objFrame;
}

$("#myIframe").ready(function() {
   var frame = getFrameTargetElement(document.getElementById("myIframe"));

   frame.onscroll = function(e) {
     $('.submitBtn').prop('disabled', false);
   }
});

希望能有所帮助。

我已经试了将近一个小时,研究了它,最后得出结论,不幸的是,使用这种方法是不可能的

PDF通常不是DOM元素,而是由PDF阅读器软件呈现的。每个浏览器都有自己的PDF渲染机制,没有标准。在某些情况下,PDF可能由PDF.js呈现;在这些情况下,您可能能够检测到滚动。但是AdobeReader、Foxit和一些原生PDF呈现不提供该选项

我还为此创建了一个Github。但是没有用


对不起。如果您能找到任何东西或解决方法,请告诉我。

如果您不介意为iframe设定一个静态高度,我有一个解决方案

HTML和CSS
1.将iframe包装在
div
容器中
2.为您的容器和iframe设置
height
height
容器应该是您希望看到的框架的
height
,iframe
height
应该足够大以显示整个pdf。)
3.将容器div的
溢出设置为
滚动

现在您有了一个可滚动的“iframe”

Javscript

  • 获取容器元素。(
    var containerell=$(“#container”)[0];
  • 编写一个
    滚动
    功能。在scroll函数中,查找元素的总高度(
    scrollHeight
    )是否小于或等于元素的滚动量(
    scrollTop
    )加上元素的内部高度(
    clientHeight
    ) 元素。如果是,请从
    按钮
  • 这是我的建议。对@mJunaidSalaat的jsidle做了一些更改。

    试试这个

    $("#myIframe").ready(function() {
      var frame = getFrameTargetElement(document.getElementById("myIframe"));
    
      frame.onscroll = function(e) {
        $('.submitBtn').prop('disabled', false);
      }
    });
    

    谢谢请不要html(这是一个iframe),我想要pdf文件。并注释此//$('#iframe1').contents().find('html').html(“…”);然后不工作对不起,我花了很多时间。但不幸的是没有成功。您如何在iframe中加载pdf?也可以分享一些它的代码示例和表单的html;