悬停时更改 iframe 中元素的背景颜色

Posted

技术标签:

【中文标题】悬停时更改 iframe 中元素的背景颜色【英文标题】:Change background-color of elements within an iframe on hover 【发布时间】:2012-01-23 04:14:12 【问题描述】:

如何更改<iframe> 中元素的background-color<iframe> 在我的域中。这是完整的代码(htmlphp 和 jQuery):

<?php 

error_reporting(E_ALL ^ E_NOTICE); 

$url = $_GET['url']; 

if( ! empty($url)) 
 
    $data = file_get_contents($url); 

    $data = str_replace('<head>', '<head><base href="'.$url.'" /></base>', $data); 

    $data = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $data); 
    $data = preg_replace('#<iframe(.*?)></iframe>#is', '', $data); 

    $data .=  
    ' 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script> 
    $("div").each(function(i) 
        if($(this).css("position") == "fixed") $(this).css("display", "none"); 
    ); 
    </script> 
    ' 
    ; 

    die($data);  
 

?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <meta name="author" content="Webarto" /> 

    <title>AdriaMart</title> 

<script src="http://code.jquery.com/jquery-latest.js"></script> 
//function for xpath location
<script type="text/javascript">
    function getXPath(node, path) 
        path = path || [];
        if(node.parentNode) 
          path = getXPath(node.parentNode, path);
        

        if(node.previousSibling) 
          var count = 1;
          var sibling = node.previousSibling
          do 
            if(sibling.nodeType == 1 && sibling.nodeName == node.nodeName) count++;
            sibling = sibling.previousSibling;
           while(sibling);
          if(count == 1) count = null;
         else if(node.nextSibling) 
          var sibling = node.nextSibling;
          do 
            if(sibling.nodeType == 1 && sibling.nodeName == node.nodeName) 
              var count = 1;
              sibling = null;
             else 
              var count = null;
              sibling = sibling.previousSibling;
            
           while(sibling);
        

        if(node.nodeType == 1) 
          path.push(node.nodeName.toLowerCase() + (node.id ? "[@id='"+node.id+"']" : count > 0 ? "["+count+"]" : ''));
        
        return path;
      ;

</script>

//function to get  xpath location and write in textfield in focus
<script>

    $(function () 
  var selectedtextbox;
  $('input[name="myinput"]').focus(function()selectedtextbox=$(this););
  $('#iframe').load(function()
    $('body *', $(this).contents()).click(function (event)  
      event.stopPropagation();
      event.preventDefault();
      var xpath = getXPath(this);
      selectedtextbox.val(xpath)
    );
  );
);
</script>
<style type="text/css"> 
<!-- 
iframewidth:100%;height:400px; 
--> 
</style> 

</head> 
<body> 

<!-- ... -->
<input id="iframe_url" name="" type="text" />
<input id="iframe_button" name="" type="button" />
<iframe id="iframe" src="?url=http://kupime.com"></iframe>
<p>
  <script type="text/javascript">
  document.getElementById('iframe_button').onclick = function () 
    document.getElementById('iframe').src = '?url=' + document.getElementById('iframe_url').value;
  ;
</script>
  <!-- ... -->
</p>
<p>Please click on title 
  <input id="" name="myinput" type="text" value="">
</p>
<p>Please click on Image 
  <input id="" name="myinput" type="text" value="">
</p>
<p>Please click on price
  <input id="" name="myinput" type="text" value="">



</p>
</body> 
</html>

【问题讨论】:

【参考方案1】:
$("#id_of_element").css("backgroundColor","green");

将 id_of_element 替换为要更改颜色的元素的 ID。以及需要更改为绿色的颜色。

【讨论】:

不,我想在所有(p,a,li,ul,div,img,script)上实现这个 $("p, a, li, ul, div, img").css("backgroundColor","green");【参考方案2】:

使用 css:

#id_of_element:hover 
    backgroundColor: green

【讨论】:

不,我想在所有(p,a,li,ul,div,img,script)上实现这个 脚本没有物理大小。并没有真正得到你需要的东西:所有元素都应该自己改变背景,还是全部改变?在第一种情况下,将 '#id_of_element' 替换为 'p,a,li,ul,div,img',在后一种情况下将其替换为 'body'

以上是关于悬停时更改 iframe 中元素的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

悬停时更改父元素的背景颜色

如何在悬停效果上更改 div 元素内部的背景颜色?

Java Swing:在鼠标悬停时更改背景颜色

Java Swing:在鼠标悬停时更改背景颜色

在 html 选择中悬停或选择项目时,如何避免更改背景颜色?

如何在单击功能中使用动画更改元素的背景颜色? [复制]