Как я могу разобрать значение status = 'logged-out' для трех тегов под ним, обновив значение login_status = 'logged-out'?
<script type="text/javascript"> window.ndm = window.ndm || {}; window.ndm.cam = {'status':'logged-out'}; </script> <script src="http://foo.com/adserver/ndm/js.php?position=header-ad&section_id=NEWS&login_status=SUBSCRIBER"></script> <script src="http://foo.com/adserver/ndm/js.php?position=middle-ad&section_id=NEWS&login_status=SUBSCRIBER"></script> <script src="http://foo.com/adserver/ndm/js.php?position=footer-ad&section_id=NEWS&login_status=SUBSCRIBER"></script>
Имейте в виду, чтотакже кучи других тегов скрипта на странице, чтобы определить соответствующие.Я получил эту функцию.
function getScriptSourceName(name){ var scripts = document.getElementsByTagName('script'); for (i=0;i<scripts.length;i++){ if (scripts[i].src.indexOf(name) > -1) return scripts[i].src; }}
Поэтому, чтобы найти нужные теги сценария, которые я хочу, я вызываю функцию - getScriptSourceName ('foo.com');
Как я могу затем обновитьЗначение параметра login_status для использования объявления в самом верху?
Я думаю, что это должно работать (ниже HTML-файл для тестирования). Посмотрите на метод changeStatus (я вызвал его нажатием кнопки для тестирования).
changeStatus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <script type="text/javascript"> window.ndm = window.ndm || {}; window.ndm.cam = {'status':'logged-out'}; </script> <script src="http://foo.com/some.php?login_status=SUBSCRIBER"></script> <script src="http://foo.com/some.php?login_status=SUBSCRIBER"></script> <script src="http://foofoo01.com/some.php?login_status=SUBSCRIBER"></script> <script> function changeStatus(name) { var scripts = document.getElementsByTagName('script'); var scriptsToChange = []; for (var i = 0; i < scripts.length; i++) { if (scripts[i].src.indexOf(name) > -1) { var oldSrc = scripts[i].src; var newSrc = oldSrc.replace(/(login_status=).*/,'$1' + 'logged-out'); scripts[i].setAttribute("src", newSrc); scriptsToChange.push(scripts[i]); } } for (var k = 0; k < scriptsToChange.length; k++) { document.getElementsByTagName("head")[0].appendChild(scriptsToChange[k]); } } </script> </head> <body> <button type="button" onclick="changeStatus('foo.com')">Change status</button> </body> </html>