html - CSS - 如何在页面加载时自动导航到页面上的颜色

标签 html css

我有一个我每天都在处理的页面,我需要查看页面中包含以下 HTML 的文本:

<tr style="background-color:#33FF00">

如何在页面加载时使用 CSS 自动导航到该颜色或 HTML 代码? 有办法吗?

我无法编辑 html,因为它不是本地托管的,而且我无权写入,只能读取。 我目前正在使用 Stylebot 为我自己的显示目的修改 css,我想知道我是否可以做同样的事情来自动导航到那个彩色部分。

如果有一种类似于使用 style bot 的方法,但对于用户脚本等 HTML,我还不够熟悉,所以如果您有解决方法,任何教程都可以很好地向我展示如何实现它。

谢谢!

最佳答案

已更新

将下面的代码复制并粘贴到文本文件中,并将其另存为 html 文件。然后在浏览器中打开它。

此代码将目标页面从主机加载到“result”元素中,然后使用一些加载后的 javascript 导航到彩色 tr 元素。如果页面需要外部样式表等脚本,则需要显式加载这些脚本。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$.ajaxPrefilter( function (options) {
  if (options.crossDomain && jQuery.support.cors) {
    var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');
    options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;
    //options.url = "http://cors.corsproxy.io/url=" + options.url;
  }
});
$(document).ready(function(){
  var sourceUrl='https://en.wikipedia.org/wiki/Main_Page';
  var sourceScript='https://en.wikipedia.org/wiki/Main_Page';
    $( "#result" ).load(sourceUrl, function() {
      $.getScript(sourceScript, function(){
         alert("Script loaded and executed.");
      });
      $('html, body').animate({
            scrollTop: $('tr').filter(function(){
              var color = $(this).css("background-color").toLowerCase() || $(this).css("background").toLowerCase() ;
              return color === "#33ff00";
            }).position().top
        }, 100);
    });
});
</script>
</head>
<body>

<div id="result"></div>

</body>
</html>

来自 jQuery scroll to elementJQuery Find Elements By Background-Color

更新 2

或者,在 iFrame 中(但仅当您与目标页面位于同一域时才有效)

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
function onLoadHandler(){
var $iframe = $("#result").contents();
 var trs=$iframe.find('tr');
   $iframe.find('html,body').animate({
    scrollTop: trs.filter(function(){
      var color = $(this).css("background-color").toLowerCase() || $(this).css("background").toLowerCase() ;
      return color === "#33ff00";
    }).position().top
  }, 100);
 };
</script>
</head>
<body>

<iframe id="result" src="FRAMESOURCE" style="top:0;left:0;width:100%;height:700px" onload="onLoadHandler();"> </iframe>    
</body>
</html>

更新 3

如果这些都不起作用,请尝试:1) 在浏览器中加载您的页面,2) 打开开发人员工具,3) 转到页面检查器或元素选项卡,3) Ctrl-F 并搜索您的颜色字​​符串 (' #ddcef2'), 4) 右键单击​​搜索结果中第一个突出显示的元素并选择“滚动到 View ”

关于html - CSS - 如何在页面加载时自动导航到页面上的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41283966/

相关文章:

html - 使用 CSS 样式化 HTML Title 属性

javascript - 从边缘删除元素符号点

html - 设置 li 元素的背景色,list-style 设置为 none

html - 如何在 div 悬停时设置 H2 标签的颜色?

html - 将选项卡内容放在中间

html - 普遍压低 body 和背景

JavaScript 不显示用 CSS 隐藏的元素

html - 使用 CSS 居中图像

css - 缩放时 Logo 和导航菜单重叠的问题

javascript - HTML5 背景视频的音量和播放控制