【问题标题】:Create a javascript file to have <object> or <embed> tags in it for use in various html pages创建一个 javascript 文件以在其中包含 <object> 或 <embed> 标记以用于各种 html 页面
【发布时间】:2010-06-29 00:25:25
【问题描述】:

我有 200 多个页面都带有相同的 &lt;object&gt;&lt;embed&gt; 标签。我需要一个 .js 文件才能在其中包含这些重复信息。这是在所有 200-300 页中重复的标签:

<OBJECT width="720" height="540">  
<PARAM NAME="Src" value="../pdf/sign-va.pdf">   
<embed width="720" height="540" src="../pdf/sign-va.pdf"
       href="../pdf/sign-va.pdf"></embed></OBJECT>  

【问题讨论】:

  • 为什么要在 JavaScript 中使用这个?我宁愿使用服务器端脚本将这些元素放入您的文档中。
  • 如果您的服务器提供它们,您可能需要考虑使用服务器端包含。您甚至可以编写一个程序来修改所有页面。请参阅 en.wikipedia.org/wiki/Server_Side_Includes 以开始使用服务器端包含。

标签: javascript object tags


【解决方案1】:

首先,Marcel Korpel 是对的:使用服务器端技术来包含这个 sn-p 是更聪明的方法。如果出于某种原因这不是您的选择,您可以这样做:

要使用 Javascript 插入它,您首先需要一些方法来确定它的放置位置。您可以通过使用具有特定 ID 的 div 来做到这一点,或者始终将其放在同一个位置(例如:&lt;body&gt; 的末尾)。

var filename = '../pdf/sign-va.pdf',
    w = 720,
    h = 540
;
var obj = document.createElement('object');
    obj.setAttribute('width', w);
    obj.setAttribute('height', h);
    var param = document.createElement('param');
        param.setAttribute('name', 'Src');
        param.setAttribute('value', filename);
    obj.appendChild(param);
    var embed = document.createElement('embed');
        embed.setAttribute('width', w);
        embed.setAttribute('height', h);
        embed.setAttribute('src', filename);
        embed.setAttribute('href', filename);
    obj.appendChild(embed);
// here is where you need to know where you're inserting it

// at the end of the body
document.body.appendChild(obj);

// OR, into a particular div
document.getElementById('some_id').appendChild(obj);

如果您使用的是 jQuery 之类的东西,这会变得不那么冗长:

$('<object></object>', { width: w, height: h})
    .append($('<param />', { name: 'src', value : filename }))
    .append($('<embed></embed>', {
        width: w, height: h,
        src : filename, href : filename
    }))
    .appendTo(document.body)
;

【讨论】:

  • 1) 不要使用setAttribute 来设置这些属性。有关说明,请参阅Bobince's comments below this answer。 2)只是好奇:你为什么把这些分号放在新的行上? h = 540;.appendTo(document.body); 不是更整洁吗?
  • @Marcel - 这只是我从使用 jQuery 开始学习的一种风格。由于您在“一行”上做所有事情,我有点像对待右括号一样对待分号。它与该语句的开头对齐,并且不会让它挂起。
  • 亲爱的 Nickf 和 Marcel,我的学习速度很慢。我想我在我的问题中错过了一件大事,即所有 pdf、txt、dwf、jpg 文件(../pdf/sign-va.pdf、../pdf/sign-va1.txt、../pdf/sign -va2.jpg,并继续...)在 200 页中的每一页中都不同,但只有大小相同 720x540。我必须使用“对象”和“嵌入”才能工作。请让我知道如何修改代码。我将使用 div。再次感谢!你们比我的拼贴老师都伟大!而且我只是比我的大学时间慢得多......
猜你喜欢
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2017-03-01
  • 1970-01-01
  • 2021-01-01
  • 1970-01-01
相关资源
最近更新 更多