我正在使用Satay方法在网页中嵌入Flash应用:
<object type="application/x-shockwave-flash" data="embeddy.swf"
id="embeddy" name="embeddy">
<param name="movie" value="embeddy.swf" />
</object>Run Code Online (Sandbox Code Playgroud)
我希望flash提供正确objectID的ExternalInterface.objectID,这意味着我需要设置name和的id属性object.
通常我会尽量避免使用HTML中的元素命名冲突,但在这种情况下将两个属性设置为相同的值是否有任何问题?
HTML表单怎么样?有没有人觉得将(n)(input| select| textarea)元素name和id属性设置为相同的值是值得的?
受这个问题的启发,海报随意陈述为<object>应该使用的事实,而不是<img>在HTML文档中嵌入图像.
我正在开发一个网络应用程序,并且,作为一个完美主义者,我试图使它完全闪亮并符合所有标准.据我所知,该
<img>标签将在即将推出的xHTML标准中弃用,并且如今即使IE能够<object>正确处理,我也希望将<object>标签用于我网站上的所有图像
很明显,海报所讨论的"即将出台的标准"是废弃的XHTML2规范,它甚至都没有正式弃用<img>.(虽然显然有传闻说这种效果.)
据我所知,我没有看到网络开发社区中的任何人提倡使用通用<object>标签而不是可论证的更具语义性和绝对更兼容的<img>标签.
是否有充分的理由使用<object>而不是<img>?如果<object>即使在全部到位的使用<img>什么可能这个突破- ?
所以在我的应用程序中,用户可以选择将文件上传到<input type = "file" id = "my-file">(HTML 5文件输入).我随后可以使用以下Javascript获取此文件:
var files = $("#my-file").files;
var file = files[0];
Run Code Online (Sandbox Code Playgroud)
我可以以某种方式使用这个var file作为data在<object>标签?下面是一个对象标记的示例,其中通过点击URL并联系服务器来抓取PDF.
<object data="data/test.pdf" /*<-- I want the var file here */ type="application/pdf" width="300" height="200">
</object>
Run Code Online (Sandbox Code Playgroud)
我怎么能做到这一点?请注意,我必须支持Internet Explorer 11.
更新:
我尝试过最终以失败告终的事情.我使用FileReader将PDF转换为数据uri,然后data在<object>标记的属性中使用它,这在Chrome中完全呈现,但在Internet Explorer中根本不呈现.
var files = $(e.currentTarget.files);
file = files[0];
var reader = new FileReader();
reader.onloadend = function() {
var data = reader.result;
console.log(data);
$("#content").prepend('<object id="objPdf" data="'+data+'" type="application/pdf"></object>');
};
reader.readAsDataURL(file);
Run Code Online (Sandbox Code Playgroud)
读者数据出现的地方如下:
data:application/pdf;base64,JVBERi0xLjQKJe...
Run Code Online (Sandbox Code Playgroud)
我有一个页面,通过jQuery动态地将SVG添加到页面:
grid.append($('<object>')
.load(function () {
// do stuff
alert('loaded')
})
.attr({
id: 'tile',
type: 'image/svg+xml',
width: Math.round(tile_w),
height: Math.round(tile_h),
data: 'map/base.svg'
})
);
Run Code Online (Sandbox Code Playgroud)
我需要访问SVG文档(将一个变量"推"到svg脚本上下文中),但必须为此加载SVG.我的问题是我没有让load事件工作.没有显示警报.
怎么做?
编辑:似乎jQuery只是阻止将"加载"事件绑定到非图像或文档元素,所以我只使用"官方"addEventListener()函数(不支持愚蠢的IE,但这不是问题为了我):
grid.append($('<embed>')
.attr({
id: 'tile' + i,
type: 'image/svg+xml',
width: Math.round(tile_w),
height: Math.round(tile_h),
src: 'map/base.svg'
})
.css({
position: 'absolute',
left: Math.round(p.x),
top: Math.round(p.y)
}).each(function (i){
this.addEventListener ('load', function (e) {
alert('loaded')
})
})
);
Run Code Online (Sandbox Code Playgroud) 我正在创建一个网站,将我的HTML嵌入到我无法控制的页面中。我希望页面以IE9标准模式呈现。为了做到这一点,我让我的第一页使用embed标签嵌入第二页,以使第二帧处于标准模式。这里讨论了这个技巧:
不幸的是,根据Internet Explorer的版本,这将导致额外的HEAD请求或额外的GET请求。这里讨论:
我想避免这些额外的请求。有人知道这样做的方法吗?
谢谢。
我可以访问加载的本地内容所<iframe>用
$("#frame").contents().find('div').css(...)
使用<object type="text/html">替代(同一本地站点)时,内容功能不起作用。
还有另一种方式还是我错过了什么?
下面是测试代码:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" href="css/style.css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery-1.3.2-min.js"></script>
<script type="text/javascript" src="js/try.js"></script>
</head>
<body>
<div id="header"></div>
<div id="here_goes_a_proprietary_side_i_dont_want_to_mess_inside">
<object id="frame" type="text/html" data="/nastysite/index.php" width="100%" height="100%"></object>
</div>
<div id="footer"></div>
</body>
Run Code Online (Sandbox Code Playgroud)
JS:
$(document).ready(function() {
alert("go ?"); //temporary solution to wait until everything is loaded.
$("#frame").contents().find('div').css("background-color", "red"); //nothing appens
console.debug($("#frame").contents().find('div')); //nothing
});
Run Code Online (Sandbox Code Playgroud) 我正在根据名称动态显示带有对象标签的 pdf,因此有可能在不添加 pdf 的情况下添加名称。我想处理这个问题,至少显示一些文本,而不是在找不到 pdf 时留下空白。
这基本上是我所拥有的:
document.getElementById("someId").innerHTML = "<object data=\"" + someName + ".pdf\" type=\"application/pdf\" width=\"500\" height=\"500\">You don't have a PDF plugin for this browser.</object>";
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在文件未加载时仅使用 html 或 javascript 来执行某些操作吗?另外,我需要它来支持 IE7。
我有一个存储在服务器上的文本文件和一个类似HTML的对象,如下所示:
<object id="data" type="text/plain" data="test.txt"></object>
Run Code Online (Sandbox Code Playgroud)
如何阅读test.txtJavascript中的内容?到目前为止,我有:
var data = document.getElementByID("data");
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何读取对象标记内的HTML文档。
我想在我的网站上嵌入一个PDF文件,它看起来像这样:
<object data="data/PDFTest1.pdf" type="application/pdf" id="data"></object>
Run Code Online (Sandbox Code Playgroud)
但后来我想首先用ajax(在javascript文件中)获取文件,在JavaScript中编辑它的源代码,然后创建一个<object>并为其提供结果数据.问题是Object需要在其data属性中使用url ,并且不直接接受实际数据.我怎么处理这个?有没有办法在javascript中创建一个"假网址"?或者我可以以某种方式将数据以另一种方式传递给对象?或者我应该使用其他标签?
提前致谢,对不起我的英语
我试图通过将我的 html 文档使用的 SVG 文件移动到对象标记中来使阅读体验更愉快。
SVG 的部分目的是使其可点击,从而改变其颜色。这是通过 JavaScript 完成的。
只要 SVG 位于父 html 中,一切就可以正常工作,但一旦我尝试使用对象标签,JavaScript getElementById 就会失败(console.log(svg_rectangle) 返回 null)。我假设 DOM 不再知道 SVG 元素一旦移动到对象标签中,所以它与范围有关?
谷歌搜索这个不太走运,我不是 DOM 专家,所以也许我没有使用正确的关键字。
我通过 Django 运行它,因此是 {{ STATIC_URL }}。
超文本标记语言
<html>
<body>
<object id="svg1" data="{{ STATIC_URL }}svg/test.svg" type="image/svg+xml"></object>
<!--
<svg
id="svg_square"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
height="256"
width="256"
version="1.1"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<g class="region">
<rect id="rect_front" transform="scale(1,-1)" height="64" width="64" y="-128" x="64" onclick="parent.testFunction(this.id)"/>
</g>
</svg>
-->
<script src="{{ STATIC_URL }}archive_140520/handle_svg.js" type="text/javascript"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
JavaScript
function testFunction(id){
console.log(id)
var svg_rectangle = document.getElementById(id);
console.log(svg_rectangle) …Run Code Online (Sandbox Code Playgroud) object-tag ×10
javascript ×6
html ×5
html5 ×3
pdf ×3
jquery ×2
base64 ×1
data-uri ×1
embedding ×1
flash ×1
iframe ×1
image ×1
onload-event ×1
svg ×1