Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery转换&;进入&;amp;破坏了我的密码。我怎样才能阻止这一切?_Javascript_Jquery_Character Encoding - Fatal编程技术网

Javascript jQuery转换&;进入&;amp;破坏了我的密码。我怎样才能阻止这一切?

Javascript jQuery转换&;进入&;amp;破坏了我的密码。我怎样才能阻止这一切?,javascript,jquery,character-encoding,Javascript,Jquery,Character Encoding,我正在尝试使用jQuery通过AJAX在网页上嵌入flash电影。flash电影接收来自querystring的几个命令 通过AJAX命令jQuery返回嵌入flash电影的HTML代码,该代码在querystring中包含&并将其转换为&;-这会中断代码并停止显示flash影片。在ajax调用中,数据类型是“text”,而不是“html” 我四处搜索,发现有几个人患有这个问题。显然,主要问题是使用.html()或.append()将代码插入网页时会自动转换为&我希望能够插入代码而不

我正在尝试使用jQuery通过AJAX在网页上嵌入flash电影。flash电影接收来自querystring的几个命令

通过AJAX命令jQuery返回嵌入flash电影的HTML代码,该代码在querystring中包含&并将其转换为&;-这会中断代码并停止显示flash影片。在ajax调用中,数据类型是“text”,而不是“html”

我四处搜索,发现有几个人患有这个问题。显然,主要问题是使用.html()或.append()将代码插入网页时会自动转换为&我希望能够插入代码而不发生这种情况。然而,我满足于再次转换它们(这似乎是我看到的问题的主要解决方案),但这对我根本不起作用

我正在运行这段代码来替换所有的&;与&:

$(target+' embed').attr('src',function(){
  var currentHref=$(this).attr('src');
  var newHref=currentHref.replace(/amp;/ig,'');
  return newHref;
});
其中target是flash电影所在的容器div的Id。此代码找不到任何&;-但当我看到来源时&;仍然存在,并且flash电影仍然不起作用

我希望能够插入没有这个&to&;的代码;转换正在发生。这可以通过jQuery实现吗?如果失败了,我怎样才能得到这段代码来替换所有的&;与&

很抱歉提出了这么长的问题和TIA。

如果

target是flash电影所在的容器div的Id

然后,第一行中的语法如果为off,则应为


$('#target embed').attr('src',function(){

一个裸的、未转义的
&
就是无效的HTML。没有任何理由在标记中包含一个

任何浏览器在看到不属于实体引用的
&
时,都会为您纠正错误。这发生在解析时,无论是在加载文档时,还是在将
innerHTML
设置为
html()
append()

浏览器不记得您的原始标记,只记得反映页面当前状态的一组对象和属性(“DOM”)。这些对象通过解析输入HTML来填充,但如果您通过读取
innerHTML
HTML()来获取标记
您将获得一组新序列化的标记,这些标记是从DOM对象创建的,不是您最初放入的标记。您将看到空格、属性顺序的差异,并且原始标记中的任何错误都将得到修复

从脚本与文档交互时,在属性级别上,
attr()
text()
,您将直接进入DOM,而不要求它将其拥有的信息序列化为HTML标记。在这种情况下,您将在页面上获得简单的符号
&
,而不是转义。因此,在这种情况下,您的regexp自然不会找到任何可替换的内容;您只需创建一个无“底层标记”是的


所以真正的问题是,你最终得到的是什么字符串“使代码失败”,以及如何处理?这在发布的问题中是不可见的。

对不起,我应该说得更清楚,target是一个保存div容器Id的变量。Jimmery:如果它是作为变量的Id,那么你忘记了“#”。试试看$('#'+target+'embed')好的,为了完全清楚起见,变量target包含一个字符串,即(在本例中)“#modalWindow”。目标变量确实不是问题所在。如果我的原始问题不清楚,很抱歉!我是新来的,仍在解决问题。下面是一个HTML代码示例,我正试图将其插入到页面中,然后将其翻译成阻止flash电影工作的HTML代码。是否仍要插入此代码如果没有再次发生这种转换,
value=“../swf/contentplayer.swf?u=u123&w=w456&c=4”
是无效的HTML。浏览器完全正确地将其解析为等效的,但有效的
value=“../swf/contentplayer.swf?u=u123&w=w456&c=4”
。这很好。您的错误在别处。
http://www.newgateclocks.com/n/z/r/swf/contentplayer-v0.4.swf?u=u4eaedd95b2a2b&w=w4eaede2550c61&c=c4eafb37fd72fc
是URL。
http://www.newgateclocks.com/n/z/r/swf/contentplayer-v0.4.swf?u=u4eaedd95b2a2b&;w=w4eaede2550c61&;c=c4eafb37fd72fc
是HTML编码的版本如果在HTML属性(如
)中包含HTML编码版本,则会将其解释为
http://www.newgateclocks.com/n/z/r/swf/contentplayer-v0.4.swf?u=u4eaedd95b2a2b&w=w4eaede2550c61&c=c4eafb37fd72fc
它会起作用。如果您需要获取原始的、非HTML编码的URL版本,请阅读嵌入obObject的
src
属性,并将其保留;不要阅读
innerHTML
/
html()
,因为这将自然地进行html编码。(另外,您可能也不想使用过时的
元素。)