如何防止符号“&”从“&

时间:2010-06-08 13:43:00

标签: javascript html oracle-apex

希望有人可以告诉我如何防止符号“&”在我的网址中被“&”取代,特别是在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

基本上返回的页面无法找到

希望这进一步澄清我的问题。

感谢。

2 个答案:

答案 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&amp;f=mydir/Summary.xml" />

因此,您必须撤消Javascript代码中的转换 - 例如:

document.getElementById('myIframe').src = $v('P1_URL').replace('&amp;','&');

答案 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

是的,这是一个很长的例子,但我相信你可以提取所有额外的垃圾成为一个极简主义的例子。 :)