我通过查询字符串收到一个字符串,我希望在<script>
内的给定文本部分之后添加此字符串。
出现<script>
的HTML代码部分是:
<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>
请注意,此脚本是encripted,并且始终以span开头,每次都有不同的id。
我要修改的部分是"mailto:\"+d+\"?subject=[Curso]"
在[Curso]
之后插入查询字符串值,如下所示:
[Curso] string
我正在使用“jQuery-URL-Parser”插件来解析网址。
此外,这个脚本是一个mailto链接,因此,我只能在点击的情况下进行操作...
有什么想法吗?
答案 0 :(得分:1)
考虑到跨度ID,这很容易解决。使用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/
根据你的帮助,这是另一个人建议的:
$('a.mail').click(function (event) {
var $this = $(this);
var linkUrl = $this.attr('href');
linkUrl = linkUrl.replace('[Curso]', '[Curso] some text');
$this.attr('href', linkUrl);
});