请提供一个示例,说明如何在HTML表单中使用对象标签。
我今天正在阅读HTML5规范以了解当今存在什么样的表单元素,并注意到以下内容:
可提交的元素
表示提交表单元素时可用于构造表单数据集的元素:按钮、输入、注册机、对象、 选择,文本区域 http://www.w3.org/html/wg/drafts/html/master/forms.html#category-submit
因此,显然表单中可以包含对象标记,从而影响表单提交时发送的数据。我熟悉对象标签的唯一上下文是将Flash电影嵌入到页面上。您可以在表单中使用对象标记并让它影响表单提交数据的示例情况是什么?
更新:
在关于如何在提交时构建表单有效负载的规范中,在 http://www.w3.org/html/wg/drafts/html/master/forms.html#constructing-form-data-set 中找到了这个有趣的片段
如果字段元素是对象元素:尝试获取表单 来自插件的提交值,如果成功,则附加一个 以名称为名称的表单数据集的条目,返回的表单 提交值作为值,字符串"对象"作为类型。
但我想知道什么样的插件会发出这样的提交值。
更新:
QtBrowserPlugin似乎支持在表单中使用它们。现在我只需要一个示例,就是一个简约的此类插件。
http://doc.qt.digia.com/solutions/4/qtbrowserplugin/developingplugins.html#using-plugins-in-forms
起初,我建议在 http://www.w3.org/html/wg/drafts/html/CR/forms.html#constructing-form-data-set 使用最新的HTML5文档,而不是HTML5.1文档。
我担心目前没有浏览器实现这种行为。无论如何,如果你想模仿规范所说的操作,你可以使用这样的脚本:
<!DOCTYPE html>
<html>
<body>
<form method="post" action="index.html" id="myForm">
<input type="text" id="myFieldID" name="myFieldName" value="Hello World!" />
<object type="myPluginMIMETYPE" id="myPluginID" name="myPluginName" ></object>
<button type="submit">Submit</button>
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script>
$( document ).ready(function() {
$( myForm ).on( "submit", function( event ) {
//Ask the plugin for some data, i.e. a flash object
var pluginData = "pluginImportantData"; // ideally something like $(myPluginID).giveMeSomeDataBecauseUserWantsToSubmit();
//Append the data before submission, giving to the input tag the right attributes
$(this).append('<input type="object" name="myPluginName" value="'+ pluginData +'" style="visibility:hidden"/>');
return true;
});
});
</script>
</body>
</html>
在尝试之后再三考虑,似乎将对象标签放在表单中是行不通的,除非我可能错过了允许对象可见的白痴标签 但是,您可以使用div 标签来分隔对象。我已经尝试了以下内容,第一部分工作正常,以"表单"开头的部分没有出现在火狐中,因此我在编写时可能会遗漏某些内容。编辑=已删除的链接(无用(
<!DOCTYPE html>
<html>
<body>
<object width="400" height="400" data="file name.***"></object>
<div>
<object width="500" height="500" data="file name.***"></object>
<form>
<object width="500" height="500" data="1r.txt">
<object width="500" height="500" data="2r.txt">
</object>
</object>
</form>
</body>
</html>