Как предотвратить замену символа «&» на «& - PullRequest
5 голосов
/ 08 июня 2010

Надеясь, что кто-нибудь может, пожалуйста, дайте мне знать, как предотвратить замену символа "&" на "&" в моем URL, особенно в javascript?

Просто чтобы расширить требования, я получаю свой URL из таблицы базы данных оракула, которую затем использую в Oracle Application Express, чтобы установить для атрибута src iframe этот URL.

К вашему сведению, URL-адрес, хранящийся в таблице Oracle, действительно хранится правильно, т.е.

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

то, что появляется у меня при попытке перейти в iframe src с помощью javascript:

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

который в основном возвращает страницу не может быть найден

Надеюсь, это прояснило мою проблему.

Спасибо.

Ответы [ 2 ]

5 голосов
/ 08 июня 2010

Я подозреваю, что вы делаете что-то вроде этого:

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;','&');
2 голосов
/ 31 октября 2012

У меня была такая же проблема, и это вызвало у меня много горя, используя 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

Да, это длинный пример, но я уверен, что вы можете извлечь весь лишний мусор, чтобы быть минималистским примером. :)

...