Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.07.2011, 04:56
Аватар для animegirl
Новичок на форуме
Отправить личное сообщение для animegirl Посмотреть профиль Найти все сообщения от animegirl
 
Регистрация: 30.07.2011
Сообщений: 1

Экранирование кавычек
Есть задача, надо взять ХТМЛ код из файла, и передать его яваскрипту, в ХТМЛ коде весь джентльменский набор спецзнаков, но вот проблема, в каком-то месте проставляются \ перед двойными кавычками, думала, что это "magic_quotes_gpc", глянула phpinfo включены гады, отключила, но они продолжают добавляться, и как назло ТОЛЬКО перед ", если бы так же другие знаки экранизировались, было бы всё ок, но тут проблема в том, что мне надо экранизировать самой всё, а там получается уже начатая, но не законченная работа.

Вот код:
<?
header("Content-Type: application/x-javascript");
$response = array();
$response['datadiv'] = $_GET['divid'];
$response['menu_innerhtml'] = file_get_contents('html.container');
$response['parent_div_name'] = 'div123';
$jsondata = json_encode($response);
?>
var data = eval('(<?echo $jsondata;?>)');
document.getElementById(data['parent_div_name']).innerHTML = data['menu_innerhtml'];
document.getElementById('dynamic_data').removeChild(document.getElementById(data['datadiv']));


Как бы подправить по правильному?

$response['menu_innerhtml'] = stripslashes(file_get_contents('html.container'));


результат даёт тот же самый

Нашла примерно место, на которое выпадает ошибка, в ХТМЛ файле, есть такое:
<div class="button" onclick="somefunc('value',10);">
    Data
</div>

Если убрать двойные кавычки, то всё норм, но их использование есть и будет, так как нужно, вопрос в том, как обработать строку так, чтоб перестала выскакивать ошибка?

Общию картину чуток исправила, добавила экранирование одиночной кавычки
<?
header("Content-Type: application/x-javascript");
$response = array();
$response['datadiv'] = $_GET['divid'];
$response['menu_innerhtml'] = file_get_contents('html.container');
$response['parent_div_name'] = 'div123';
$jsondata = json_encode($response);
?>
(
    function()
        {
        var data = eval('(<?echo str_replace("'","\'",$jsondata);?>)');
        document.getElementById(data['parent_div_name']).innerHTML = data['menu_innerhtml'];
        document.getElementById('dynamic_data').removeChild(document.getElementById(data['datadiv']));
        }
)();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экранирование кавычек Johny Общие вопросы Javascript 1 13.07.2011 20:31
экранирование & при передаче методом GET cyberovskij Общие вопросы Javascript 1 09.02.2011 19:58
Как убрать эффект кавычек? FirstFrost Общие вопросы Javascript 10 15.07.2010 22:47
Экранирование квадратных скобок в регулярных выражениях Holod Я не знаю javascript 3 27.05.2009 22:52
экранирование \ welder Общие вопросы Javascript 1 13.07.2008 20:40