Koe*_*enW 7 javascript internet-explorer
我正在使用FormData将信息发送回服务器.但在某些情况下,我需要在发送之前读出数据.
Chrome允许您遍历集合,但IE不提供相同的方法.
以下代码适用于Chrome:
// Create a test FormData object
var formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');
// Display the key/value pairs
for(var pair of formData.entries()) {
console.log(pair[0]+ ', '+ pair[1]);
}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何在IE中实现相同的结果?谢谢.
acd*_*ior 10
这是一个有效的FormData填充物.有关详细信息,请阅读他们的文档.
要使其适用于IE 10及更高版本,您只需添加一个WeakMappolyfill.
<script src="https://unpkg.com/weakmap-polyfill/weakmap-polyfill.min.js"></script>
<script src="https://unpkg.com/formdata-polyfill"></script>
<form action="" id="f">
<input type="text" name="i1" value="v1">
<input type="text" name="i2" value="v2">
</form>
<script type="text/javascript">
console.clear();
// Create a test FormData object
var formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');
// Display the key/value pairs
var formDataEntries = formData.entries(), formDataEntry = formDataEntries.next(), pair;
while (!formDataEntry.done) {
pair = formDataEntry.value;
console.log(pair[0] + ', ' + pair[1]);
formDataEntry = formDataEntries.next();
}
// or, if you are really into compact code
var es, e, pair;
for (es = formData.entries(); !(e = es.next()).done && (pair = e.value);) {
console.log(pair[0] + ', ' + pair[1]);
}
// testing getting from form
var myForm = document.getElementById('f');
for (es = new FormData(myForm).entries(); !(e = es.next()).done && (pair = e.value);) {
console.log(pair[0] + ', ' + pair[1]);
}
</script>
Run Code Online (Sandbox Code Playgroud)
上面的代码选择了最新版本.测试版本:https://unpkg.com/weakmap-polyfill@2.0.0/weakmap-polyfill.min.js和https://unpkg.com/formdata-polyfill@3.0.9/formdata.min.js
如果你只需要IE 11及更高版本,你可以删除WeakMap's polyfill并保持不变FormData.
<script src="https://unpkg.com/formdata-polyfill"></script>
<form action="" id="f">
<input type="text" name="i1" value="v1">
<input type="text" name="i2" value="v2">
</form>
<script type="text/javascript">
console.clear();
// Create a test FormData object
var formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');
// Display the key/value pairs
var formDataEntries = formData.entries(), formDataEntry = formDataEntries.next(), pair;
while (!formDataEntry.done) {
pair = formDataEntry.value;
console.log(pair[0] + ', ' + pair[1]);
formDataEntry = formDataEntries.next();
}
// or, if you are really into compact code
var es, e, pair;
for (es = formData.entries(); !(e = es.next()).done && (pair = e.value);) {
console.log(pair[0] + ', ' + pair[1]);
}
// testing getting from form element
const myForm = document.getElementById('f');
for (es = new FormData(myForm).entries(); !(e = es.next()).done && (pair = e.value);) {
console.log(pair[0] + ', ' + pair[1]);
}
</script>
Run Code Online (Sandbox Code Playgroud)
上面的代码选择了最新版本.测试版本:https://unpkg.com/formdata-polyfill@3.0.9/formdata.min.js
| 归档时间: |
|
| 查看次数: |
5236 次 |
| 最近记录: |