Javascript &引用;SecurityError:操作不安全";当尝试将img src设置为base64值时
我有一个数组,它存储一些base64值,如下所示:Javascript &引用;SecurityError:操作不安全";当尝试将img src设置为base64值时,javascript,jquery,Javascript,Jquery,我有一个数组,它存储一些base64值,如下所示: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD ..." 我做了这个功能: var base64Matcher = new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$"); $.each(inputValues, function(key, value)
"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD ..."
我做了这个功能:
var base64Matcher = new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$");
$.each(inputValues, function(key, value) {
if (base64Matcher.test(value)) {
$('#' + key).attr('src', value);
} else {
$('#' + key).val(value);
}
});
基于,但当我尝试加载值时,出现以下错误:
SecurityError:操作不安全
如何测试值是否为base64 encode,然后将src
属性设置为正确?这是一张图片,显示了保存inputValues
的只是我刚刚通过这些值找到的值,如果它是base64
encode,那么我设置src
,因为这是一张图片,只有当我加载图片时,函数才会失败
PS:我检查并发布没有成功,有吗?什么类型的元素有
值和src
?变量名表明您正在循环输入元素?如果是的话。。。src
属性不存在。我不认为这是抛出安全错误,但它肯定会导致此代码无法显示图像。您需要一个img
标记,该标记不支持value
属性。综上所述,现在还不清楚你想在这里做什么。这是一个在base64
中保存图像的表单,这个base64
存储在img
标记的src
属性中,我要做的是将这个值存储在某个临时变量中,然后在另一个imgI中检索。明白吗。但是,在阅读代码时,您使用的是$('#'+key).val(value)
不会对图像标记做任何操作,但会设置表单输入的值。无论如何,您可以在JSFIDLE上设置一个这样的示例吗?这是一个奇怪的错误,从表面上看,你似乎遗漏了一些重要的细节。尝试在jsfiddle.net上设置错误的复制,并添加问题的链接。如果其他人还没有弄明白,我会回去看看我是否能弄明白。@Chris忘记了inputValues
name,因为它只是一个名称,如果你看一下我留给你的图片,这些就是var所持有的值。我所做的是测试这个值,如果它有一些base64
是因为它是img
标记的一部分。这就是我在inputValues
中存储值的方式:$(“#产品创建步骤-”+current+“输入,#产品创建步骤-”+current+“img”).each(function(){var that=$(This);var thatis=This.src | | This.value;inputValues[that.attr('id')]=thatis;})
注意,我存储了每个img或img的id
input@Chris因此,当我使用inputValues
上的each
移动并使用正则表达式进行测试时,我尝试将值设置回$('#'+key).attr('src',value)代码>如果它有base64代码或$('#'+键).val(值);如果是正常输入。对于第二个选项,它在输入元素时工作良好,但对于第一个选项,我得到了错误,很遗憾,我无法设置任何示例,因为这是我正在为一个项目工作的Symfony2捆绑包的一部分,希望有了这些信息,您对什么是错误或是什么导致问题有任何想法