Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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 如何读取默认的内联onclick属性,使用内部链接并对其进行处理?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何读取默认的内联onclick属性,使用内部链接并对其进行处理?

Javascript 如何读取默认的内联onclick属性,使用内部链接并对其进行处理?,javascript,jquery,html,Javascript,Jquery,Html,我有一个div列表,它们有单独的onclick函数。 这些函数导致在新窗口中打开http链接。我不能在生成站点之前重写onclick函数,因为它是基于rss文件生成的第三方rss提要。现在我想保留单独的链接,但用它们做些别的事情 年表如下: 用户单击具有预写onclick函数的元素 onclick函数被阻止在新页面中打开 onclick函数中的链接将保存以供进一步使用 HTML5音频元素获取链接作为源 到目前为止,我已经尝试覆盖onclick函数。但我在这个过程中丢失了http链接 <di

我有一个div列表,它们有单独的onclick函数。 这些函数导致在新窗口中打开http链接。我不能在生成站点之前重写onclick函数,因为它是基于rss文件生成的第三方rss提要。现在我想保留单独的链接,但用它们做些别的事情

年表如下:

  • 用户单击具有预写onclick函数的元素
  • onclick函数被阻止在新页面中打开
  • onclick函数中的链接将保存以供进一步使用
  • HTML5音频元素获取链接作为源
  • 到目前为止,我已经尝试覆盖onclick函数。但我在这个过程中丢失了http链接

    <div class="fw-feed-item-url" 
    onclick="window.open('http://www.example.com/podcasts/podcast_eposode3.mp3' 
    , '_blank')">
    

    在JavaScript中,回调和事件处理程序应该按照它们被绑定的顺序执行,并且没有办法改变顺序。onclick属性中的代码将在创建元素后直接绑定,因此将是第一个执行的代码

    防止这种情况发生的唯一方法是使用jQuery的
    .removeAttr
    在源代码或客户端删除该属性。因此,在页面加载时重写
    onclick
    事件,如下面的示例代码所示

    <script>
    
    $(document).ready(function() {
    
        var $elements =  $(".fw-feed-item-url");
    
        // Iterate over elements
        $elements.each(function () {
    
            var $elm = $(this);
    
            // Reference to onclick attribute value for future use
            var onClick = $elm.attr("onclick");
            console.log(onClick);
    
            // Remove onclick attr and bind your own click event
            $elm.removeAttr("onclick").click(function () {
    
                //Own code comes here
                alert("Whoa!!!! click worked!!");
            })
    
        });
    });
    
    
    $(文档).ready(函数(){
    var$elements=$(“.fw提要项url”);
    //迭代元素
    $elements.each(函数(){
    var$elm=$(本);
    //对onclick属性值的引用以供将来使用
    var onClick=$elm.attr(“onClick”);
    console.log(onClick);
    //删除onclick attr并绑定您自己的click事件
    $elm.removeAttr(“onclick”)。单击(函数(){
    //这里有自己的代码
    警告(“哇!!!!点击工作!!”;
    })
    });
    });
    

    引用自

    在JavaScript中,回调和事件处理程序应该按照绑定的顺序执行,并且没有办法改变顺序。onclick属性中的代码将在创建元素后直接绑定,因此将是第一个执行的代码

    防止这种情况发生的唯一方法是使用jQuery的
    .removeAttr
    在源代码或客户端删除该属性。因此,在页面加载时重写
    onclick
    事件,如下面的示例代码所示

    <script>
    
    $(document).ready(function() {
    
        var $elements =  $(".fw-feed-item-url");
    
        // Iterate over elements
        $elements.each(function () {
    
            var $elm = $(this);
    
            // Reference to onclick attribute value for future use
            var onClick = $elm.attr("onclick");
            console.log(onClick);
    
            // Remove onclick attr and bind your own click event
            $elm.removeAttr("onclick").click(function () {
    
                //Own code comes here
                alert("Whoa!!!! click worked!!");
            })
    
        });
    });
    
    
    $(文档).ready(函数(){
    var$elements=$(“.fw提要项url”);
    //迭代元素
    $elements.each(函数(){
    var$elm=$(本);
    //对onclick属性值的引用以供将来使用
    var onClick=$elm.attr(“onClick”);
    console.log(onClick);
    //删除onclick attr并绑定您自己的click事件
    $elm.removeAttr(“onclick”)。单击(函数(){
    //这里有自己的代码
    警告(“哇!!!!点击工作!!”;
    })
    });
    });
    

    引用自

    请添加更多代码,以显示您迄今为止的尝试。我添加了我试图实现的jQuery函数。标准onclick函数的预防工作正常。然而,替换音频src和读取标准onclick函数的属性并不是这样。想想我看到的
    eval
    实际上是什么,所以eval不仅读取值,而且还执行它,对吗?请添加更多代码,以显示您迄今为止的尝试。我添加了我试图实现的jQuery函数。标准onclick函数的预防工作正常。然而,替换音频src和读取标准onclick函数的属性并没有。想想
    eval
    实际上看到了什么,所以eval不仅读取值,而且还执行它,对吗?