首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JavaScript更新location (src)中的参数

使用JavaScript更新location (src)中的参数
EN

Stack Overflow用户
提问于 2011-08-25 12:15:46
回答 1查看 171关注 0票数 0

如何将status = 'logged-out‘的值解析为它下面的3个标记,从而更新login_status = 'logged-out’的值?

代码语言:javascript
复制
<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&amp;section_id=NEWS&amp;login_status=SUBSCRIBER"></script>
<script src="http://foo.com/adserver/ndm/js.php?position=middle-ad&amp;section_id=NEWS&amp;login_status=SUBSCRIBER"></script>
<script src="http://foo.com/adserver/ndm/js.php?position=footer-ad&amp;section_id=NEWS&amp;login_status=SUBSCRIBER"></script>

请记住,页面上还有许多其他脚本标记,以便识别相关的脚本标记。我得到了这个函数。

代码语言:javascript
复制
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参数的值以使用在最上面声明的值呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-25 13:15:13

我认为这应该可以工作(下面的HTML文件用于测试)。看看changeStatus方法(我通过点击按钮来触发它进行测试)。

代码语言:javascript
复制
<!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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7185073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档