Подтвердить что ты не робот

Элемент HTML-объекта и проблема с прокруткой

Я использую следующий HTML-код для вставки HTML-кода из внешнего URL-адреса на мой сайт, и он отлично работает:

<object data="https://myapp.com/explore" width="100%" height="100%" type="text/html" style="overflow: hidden;">
    <embed src="https://myapp.com/explore" width="100%" height="100%;" /> 
    Error: Embedded data could not be displayed.
</object>

На странице отображается вертикальная полоса прокрутки, которая является правильным поведением, которое я ожидаю, поскольку содержимое больше, чем высота окна браузера Chrome.

Однако, когда я нажимаю вертикальную полосу прокрутки в первый раз, страница прокручивается... После этого, не нажимая, страница прокручивается всякий раз, когда мышь находится над вертикальной полосой прокрутки, БЕЗ меня на самом деле щелкает, чтобы прокручивать.

Кто-нибудь видел это, и можете ли вы предложить, как его решить? Это странное поведение, которого я раньше не видел...

4b9b3361

Ответ 1

Я пробовал ваш подход к объекту + встраивания и столкнулся с той же проблемой с полосой прокрутки. Браузер Chrome, похоже, не запускает mousedown на полосе прокрутки, но запускает mouseup, который выглядит как ошибка. Почему бы не попробовать iframe? Он работает так, как вы ожидаете, я думаю:

<iframe id="exploreIFrame" src="http://myapp.com/explore"
  width="100%" height="100%" style="border: none;"
></iframe>

Чтобы охватить все окно, установите следующие стили:

<style type="text/css">
  body { margin: 0; }
  #exploreIFrame { position: fixed; }
</style>

Ответ 2

Попробуйте использовать свойство max-height в пикселях и используйте свойство overflow для прокрутки...

 object_classname{
     max-height: 600px; //as you like
     overflow-y: scroll;
 }

Ответ 3

Лучше использовать iframe вместо встраивания.

IFrame:

Элемент iframe представляет собой вложенный контекст просмотра. Стандарт HTML 5 описывает "Элемент", как правило, используемый для включения ресурсов из других доменов или поддоменов, но может использоваться для включения контента из того же домена. Сила iframe заключается в том, что встроенный код является "живым" и может связываться с родительским документом.

embed:

Стандартизован в HTML 5, но до этого он был нестандартным тегом, который, по общему признанию, был реализован всеми основными браузерами. Поведение до HTML 5 может меняться...

Встраиваемый элемент предоставляет точку интеграции для внешнего (обычно не HTML) приложения или интерактивного контента. В стандарте HTML 5 "Элемент" используется как встроенный контент для плагинов браузера. Исключениями являются SVG и HTML, которые обрабатываются по-разному в соответствии со стандартом.

Сведения о том, что может и не может быть сделано со встроенным контентом, зависит от рассматриваемого плагина браузера. Но для SVG вы можете получить доступ к встроенному документу SVG от родителя с чем-то вроде:

svg = document.getElementById("parent_id").getSVGDocument();

Из встроенного документа SVG или HTML вы можете связаться с родителем с помощью

parent = window.parent.document;

Для встроенного HTML нет способа получить во встроенном документе родителя (который я нашел).

Ответ 4

Связано с оборудованием Couldbe. Если у вас есть кнопка/колесо на мыши, которую вы нажимаете, когда вы выбираете полосу прокрутки. IT звучит как проблема, с которой я столкнулся с амулетом, у которого была дополнительная кнопка на колесе прокрутки.