jiangguangxian
2010-05-12 16:45
浏览 213
已采纳

iframe自制文本编辑器事件问题

我现在用iframe实现自定义文本编辑器,现在简易效果如下:
效果如iframe1.bmp显示,
我在选中的文字上加了连接。
但是我想如果鼠标点击到加过连接的地方,显示弹出层。这个事件怎么加。
效果如iframe2.bmp

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • weixin_42518082 2010-05-13 09:30
    已采纳

    简单的例子, 点击iframe中链接, 或弹出alert.
    得到iframe的document, 为iframe的document添加事件
    最好选用js框架, 否则处理比较麻烦

    a.html
    [code="html"]
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



    Dialog function getIframeDoc(iframe) { return iframe.contentDocument || iframe.contentWindow.document; } function addEvent(el, event, listener) { if (el.addEventListener){ el.addEventListener(event, listener, false); } else if (el.attachEvent){ el.attachEvent('on' + event, listener); } } function fun(){ var iframeDoc =getIframeDoc(document.getElementById("x")); iframeDoc.designMode = "On"; var anchors = iframeDoc.getElementsByTagName("a"); for(var i=0,len =anchors.length;i<len;i++){ addEvent(anchors[i],"click", (function(){ var anchor = anchors[i] return function(){ doClick(anchor) } })()); } } function doClick(anchor ){ alert("点击了 " +anchor ) }






    [/code]

    b.html
    [code="html"]
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



    Dialog


    cxxxxxxx127.0.0.1xcccccc127.0.0.2cc


    [/code]
    打赏 评论
  • weixin_42518082 2010-05-12 20:34

    最好选用一个js框架, 这样添加事件和tips都是很方便的.

    打赏 评论
  • elf8848 2010-05-13 09:11

    这是一个能用添加事件方法, 是"标准"的, 很多js库使用的都是这个方法
    [code="java"]
    function addEvent( node, type, listener ) {

    if (node.addEventListener) {
        // 如果是火狐
        node.addEventListener( type, listener, false );
        return true;
    } else if(node.attachEvent) {
        // 如果是IE
        node['e'+type+listener] = listener;
        node[type+listener] = function(){node['e'+type+listener]( window.event );}
        node.attachEvent( 'on'+type, node[type+listener] );
        return true;
    }
    
    return false;
    

    }
    [/code]

    调用方法:
    addEvent( DOM节点对象, "click", function(){alert(5)})

    打赏 评论

相关推荐 更多相似问题