5

我希望防止符号“&”&在我的 URL 中被替换为“”,特别是在 JavaScript 中。

只是为了扩展这个要求,我从一个 oracle 数据库表中获取我的 url,然后我在 Oracle Application Express 中使用它来将 iframe 的 src 属性设置为这个 url。

仅供参考,存储在 Oracle 表中的 url 实际上是正确存储的,即

http://example.com/xml/getInfo?s=pvalue1&f=mydir/Summary.xml

尝试使用 JavaScript 传递到 iframe src 时,我使用的内容是:

http://example.com/xml/getInfo?s=pvalue1&f=mydir/Summary.xml

基本上返回的页面找不到

4

2 回答 2

6

我怀疑你正在做这样的事情:

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;','&');
于 2010-06-08T14:28:12.340 回答
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

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

于 2012-10-31T07:36:11.277 回答