希望有人可以告诉我如何防止符号“&”在我的网址中被“&
”取代,特别是在javascript中?
为了扩展需求,我从Oracle数据库表中获取我的url,然后在Oracle Application Express中使用它来将iframe的src属性设置为此url。
仅供参考,存储在Oracle表中的URL实际上是正确存储的,即
http://mydomain.com/xml/getInfo?s=pvalue1&f=mydir/Summary.xml
尝试使用javascript传递到iframe src时出现的内容是:
http://mydomain.com/xml/getInfo?s=pvalue1&f=mydir/Summary.xml
基本上返回的页面无法找到
希望这进一步澄清我的问题。
感谢。
答案 0 :(得分:5)
我怀疑你做的是这样的事情:
1)从数据库中选择URL文本到Apex页面项目。
2)在Javascript中,从页面项中获取URL文本并使用它来设置iframe源。
当您在步骤1中选择值时,Apex将自动替换“&”通过“&”以便页面HTML有效 - 它将类似于:
<input type="hidden" id="P1_URL"
value="http://mydomain.com/xml/getInfo?s=pvalue1&f=mydir/Summary.xml" />
因此,您必须撤消Javascript代码中的转换 - 例如:
document.getElementById('myIframe').src = $v('P1_URL').replace('&','&');
答案 1 :(得分:2)
我遇到了同样的问题,使用PHP和JS给我带来了很多悲伤。
这就是我使用substring(0,1)
解决问题的方法。
function callAJAX()
{
var var_Date = document.getElementById('DateAJAX').value;
var l2 = '&type=' + <?php echo $type; ?>;
var l2=l2.substring(0,1) + '<?php echo "type=" . $type; ?>'; // stupid js fix
jsfunction('ajaxdiv', 'phpfilename.php?date=' +var_Date + l2,'<? echo $num; ?>');
}
该URL将产生如下内容:
phpfilename.php?date=2012-10-31&type=2
是的,这是一个很长的例子,但我相信你可以提取所有额外的垃圾成为一个极简主义的例子。 :)