#javascript #jquery
#JavaScript #jquery
Вопрос:
Я что-то тестирую и не совсем уверен, что это возможно. У меня есть базовый href для внешнего PDF-файла. Я хотел бы прикрепить к нему динамический элемент, скажем, тег div и h1.
<a href="https://osm.hpi.de/teaching/profSem/statistics101.pdf" onclick="createElements()">View</a>
<script>
function createElements(){
var div = $(document.createElement('div'));
div.innerHTML = '<h1 id="myTitle" class="back-button" alt="custom-title">';
$('#myTitle').css({
'position': 'absolute',
'z-index': '99',
'top': '16px',
'left': '12px',
'width': '11%',
});
}
</script>
В принципе, когда открывается внешняя ссылка формата href, я хочу добавить прикрепить тег h1 к этому документу. Однако не уверен, что это возможно, пока тестирую воду. Приведенный выше код, похоже, не работает, но был бы признателен за обратную связь, чтобы узнать, можно ли это сделать с помощью простого ванильного javascript / jquery.
Комментарии:
1. «Я хочу добавить прикрепить тег h1 к этому документу» Вы имеете в виду PDF? Если это так, то это невозможно. Если вы имеете в виду, что хотите добавить
h1
на текущую страницу, это также невозможно, поскольку текущая страница уже выгружена, поскольку вы отправили пользователя в файл PDF.
Ответ №1:
Вы не можете повлиять на документ, который еще не открыт. Чтобы это сработало, ваш код javascript должен быть внутри PDF, но поскольку браузеры обрабатывают содержимое PDF по-разному (как и должны), он никогда не будет выполнен. Короче говоря, я не думаю, что это возможно.
Комментарии:
1. Я понял, что это так, просто решил выбросить его просто так. Мой следующий вариант — просто загрузить его в IFrame
2. Да, это был бы правильный путь.
Ответ №2:
Ваш href всегда будет отправлять пользователя в программу просмотра PDF в браузере, и вы потеряете контроль над этим.
Если вы хотите, чтобы элемент был виден над или поверх файла PDF, вы можете использовать «страницу шаблона», где у вас есть свой HTML-элемент и полноэкранный iFrame с src, который указывает на файл PDF.
Это отобразит средство просмотра PDF в браузере в этом iFrame winthin на странице вашего шаблона.
Пример.
<div>
<div>
<!-- Your element here (you can make this absolute to make it lay over the pdf file etc.. -->
</div>
<iframe src=".../.pdf" style="width:100vw;height:100vh">
</div>
Ответ №3:
Возможно, вам вообще не нужен jQuery. Я бы сделал что-то вроде этого (обратите внимание, что я заранее оставляю div пустым):
<a href="https://osm.hpi.de/teaching/profSem/statistics101.pdf" onclick="createElements()">View</a>
<div id="myDiv"></div>
function createElements(){
var text = document.createElement("h1");
text.innerHTML ="MY heading";
document.getElementById("myDiv").appendChild(text);
}