Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CSS访问链接-如何识别通过点击我的应用程序访问的访问链接?_Javascript_Css_Visited - Fatal编程技术网

Javascript CSS访问链接-如何识别通过点击我的应用程序访问的访问链接?

Javascript CSS访问链接-如何识别通过点击我的应用程序访问的访问链接?,javascript,css,visited,Javascript,Css,Visited,我想更改应用程序中已访问链接的颜色。 访问的问题是指在我的浏览器中发生的任何访问。如何仅通过单击应用程序中显示的链接来识别访问?您可以通过向所有链接添加eventListener或onclick事件来实现这一点。然后将唯一ID添加到所有链接中,并将它们添加到cookie中。 加载应用程序时,只需读取创建的cookie并将类名更改为“已访问” 编辑: .你已经来过了吗{ 颜色:#f00; } addEventListener(“加载”,函数名(参数){ var links=eval(getCoo

我想更改应用程序中已访问链接的颜色。
访问的问题是指在我的浏览器中发生的任何访问。如何仅通过单击应用程序中显示的链接来识别访问?

您可以通过向所有链接添加eventListener或onclick事件来实现这一点。然后将唯一ID添加到所有链接中,并将它们添加到cookie中。 加载应用程序时,只需读取创建的cookie并将类名更改为“已访问”

编辑:


.你已经来过了吗{
颜色:#f00;
}
addEventListener(“加载”,函数名(参数){
var links=eval(getCookie(“links_visted”);
对于(变量i=0;i对于(var i=0;i如何将id添加到cookie?链接是动态的问题(每个用户可以在某些字段中输入链接)。因此,我不能给出唯一的id。只需为用户创建的每个链接添加一个id。如果没有看到您的代码,就很难知道您的意思。如果有一个按钮像
create link
调用特定函数,只需添加
newlink.id=“someUniqueID”
。@Felix Bernhard-没有按钮。用户只需输入文本,并使用名为linkify()的函数,应用程序即可识别文本中是否有链接。
<a id="link1" href="page1.html">link 1</a>
<a id="link2" href="page2.html">link 2</a>
<a id="link3" href="page3.html">link 3</a>

<style type="text/css">
    .already_visited{
        color: #f00;
    }
</style>


<script type="text/javascript">

    window.addEventListener("load", function function_name(argument){
        var links = eval(getCookie("links_visited"));
        for(var i = 0; i < links.length; i++){
            document.getElementById(links[i]).classList.add("already_visited");
        }
    });

    /* Add events to all links */
    function callback(e) {
        var e = window.e || e;

        if (e.target.tagName !== 'A'){
            return;
        }

        /* call cookie function */
        addToVisited(e.target.id);
    }

    if (document.addEventListener){
        document.addEventListener('click', callback, false);
    }
    else{
        document.attachEvent('onclick', callback);
    }

    /* cookie function */
    function addToVisited(link_id){
        var ids = getCookie("links_visited");

        if (ids == "") {
            setCookie('links_visited', '["'+link_id+'"]', 365);
        }
        else if(ids.indexOf(link_id) == -1){
            var id_array = eval(ids);
            id_array.push(link_id);
            setCookie("links_visited", '["'+id_array.join('","')+'"]', 365);
        }

        console.log(getCookie("links_visited"));
    }

    /* cookie function helpers */
    function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/";
    }

    function getCookie(cname) {
        var name = cname + "=";
        var ca = document.cookie.split(';');
        for(var i=0; i<ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1);
            if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
        }
        return "";
    }

</script>