如何使用 jquery 动态创建对象标签并向其添加替代内容?

发布于 2024-09-16 05:09:54 字数 566 浏览 9 评论 0原文

我正在尝试使用一个对象将 pdf 嵌入到我的网页中,该对象将回退到 iframe,该 iframe 通过外部渲染服务为未安装 acrobat 的用户加载 pdf。

我试图这样做:

var container = document.createElement("div");
var object = document.createElement("object");
var iframe = document.createElement("iframe");

$(container).append(object);
$(object).append(iframe);
$("body").append(container);

这在 Firefox 中有效,但在 IE 中的 jquery 核心代码中导致错误。当我将 iframe 附加到对象时它会中断。

我需要以一种可以访问对象和 iframe 元素的方式创建内容,因为我没有可靠的方法来检测用户是否有 acrobat,所以我依靠浏览器来显示正确的内容并设置 iframe 和对象的样式,以便其中任何一个看起来都不错。

什么是替代的跨浏览器方法?

I am trying to embed a pdf into my webpage using an object that will fallback to an iframe which loads the pdf through an external rendering service for users that do not have acrobat installed.

I am trying to do it like this:

var container = document.createElement("div");
var object = document.createElement("object");
var iframe = document.createElement("iframe");

$(container).append(object);
$(object).append(iframe);
$("body").append(container);

This works in firefox but causes an error in IE in the jquery core code. It breaks when I append the iframe to the object.

I need to create the content in a way that will give me access to both the object and the iframe element because I do not have a reliable way to detect if the user has acrobat or not, so I am depending on the browser to display the correct content and just styling both the iframe and the object so that either one will look okay.

What is an alternate and cross-browser approach?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我早已燃尽 2024-09-23 05:09:54

你试过这样吗?

var object = $("<object>");
var container = $("<div>").append(object);
$(object).append("<iframe>");
$("body").append(container);

have you tried it like this?

var object = $("<object>");
var container = $("<div>").append(object);
$(object).append("<iframe>");
$("body").append(container);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文