JQuery добавить текст внутри <script> - PullRequest
0 голосов
/ 10 мая 2011

Я получаю строку через строку запроса и хочу добавить эту строку после данной части текста внутри <script>.

Часть HTML-кода, где появляется <script>:

<span id="e641370446" class="inline"></span><script type="text/javascript">/*<![CDATA[*/eval("var a=\"697OHPkfxK+cMU-8tFgWnE4zQ3GYSIvNDpi_0Co5eVlw@yZTJmu1B.hrXqRdAsj2Lba\";var b=a.split(\"\").sort().join(\"\");var c=\"wsRdrdUVAmXmwr7wr.7lR\";var d=\"\";for(var e=0;e<c.length;e++)d+=b.charAt(a.indexOf(c.charAt(e)));document.getElementById(\"e641370446\").innerHTML=\"<a class=\\\"inline mail\\\" href=\\\"mailto:\"+d+\"?subject=[Curso] SEO Atípico%20Contato&body=Nome:%20%0D%0ATelefone:%20%0D%0AMensagem:%20%0D%0A\\\">envie um e-mail para cursos@atipico.com.br</a>\"")/*]]>*/</script>

Обратите внимание, что этот скрипт зашифрован, и перед ним всегда стоит интервал, ведь ведьма каждый раз имеет другой идентификатор.

Часть, которую я хочу изменить, это "mailto:\"+d+\"?subject=[Curso]" вставка значения строки запроса сразу после [Curso], например:

[Curso] string

Я использую плагин "jQuery-URL-Parser" для анализа URL.

Кроме того, этот скрипт является ссылкой mailto, поэтому я могу выполнить операцию только в случае нажатия ...

Есть идеи?

1 Ответ

1 голос
/ 10 мая 2011

Учитывая идентификатор промежутка, это легко решить.Используйте jQuery для изменения DOM, а не содержимого скрипта.

var spanId = 'e641370446', // get this from wherever
    $link = $('#' + spanId).children('a.inline.mail');

$link.prop('href', $link.prop('href') + '&key=value');

Убедитесь сами: http://jsfiddle.net/mattball/E8HC5/


Редактировать:

Я пытаюсь адаптировать ваш код, но он не работает.В случае, если я должен добавить строку после слова "[Curso]" ... любая идея?

Вы можете использовать что-то простое, как String.replace().

...
$link.prop('href', $link.prop('href').replace('[Curso]', '[Curso] some text'));
...

Демонстрация 2: http://jsfiddle.net/mattball/f2sKa/


Решение (добавлено OP ):

На основании вашей помощи это то, чтодругой народ предложил:

$('a.mail').click(function (event) {
    var $this = $(this);
    var linkUrl = $this.attr('href');

    linkUrl = linkUrl.replace('[Curso]', '[Curso] some text');
    $this.attr('href', linkUrl);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...