Blame view

WebRoot/plugins/ueditor/dialogs/link/link.html 4.28 KB
ad5081d3   孙向锦   初始化项目
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
      <title></title>
      <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
      <script type="text/javascript" src="../internal.js"></script>
      <style type="text/css">
          *{margin:0;padding:0;color: #838383;}
          table{font-size: 12px;margin: 10px;line-height: 30px}
          .txt{width:300px;height:21px;line-height:21px;border:1px solid #d7d7d7;}
      </style>
  </head>
  <body>
      <table>
          <tr>
              <td><label for="text"> <var id="lang_input_text"></var></label></td>
              <td><input class="txt" id="text" type="text" disabled="true"/></td>
          </tr>
          <tr>
              <td><label for="href"> <var id="lang_input_url"></var></label></td>
              <td><input class="txt" id="href" type="text" /></td>
          </tr>
          <tr>
              <td><label for="title"> <var id="lang_input_title"></var></label></td>
              <td><input class="txt" id="title" type="text"/></td>
          </tr>
          <tr>
               <td colspan="2">
                   <label for="target"><var id="lang_input_target"></var></label>
                   <input id="target" type="checkbox"/>
               </td>
          </tr>
          <tr>
              <td colspan="2" id="msg"></td>
          </tr>
      </table>
  <script type="text/javascript">
      var range = editor.selection.getRange(),
          link = range.collapsed ? editor.queryCommandValue( "link" ) : editor.selection.getStart(),
          url,
          text = $G('text'),
          rangeLink = domUtils.findParentByTagName(range.getCommonAncestor(),'a',true),
          orgText;
      link = domUtils.findParentByTagName( link, "a", true );
      if(link){
          url = utils.html(link.getAttribute( '_href' ) || link.getAttribute( 'href', 2 ));
  
          if(rangeLink === link && !link.getElementsByTagName('img').length){
              text.removeAttribute('disabled');
              orgText = text.value = link[browser.ie ? 'innerText':'textContent'];
          }else{
              text.setAttribute('disabled','true');
              text.value = lang.validLink;
          }
  
      }else{
          if(range.collapsed){
              text.removeAttribute('disabled');
              text.value = '';
          }else{
              text.setAttribute('disabled','true');
              text.value = lang.validLink;
          }
  
      }
      $G("title").value = url ? link.title : "";
      $G("href").value = url ? url: '';
      $G("target").checked = url && link.target == "_blank" ? true :  false;
      $focus($G("href"));
  
      function handleDialogOk(){
          var href =$G('href').value.replace(/^\s+|\s+$/g, '');
          if(href){
              if(!hrefStartWith(href,["http","/","ftp://"])) {
                  href  = "http://" + href;
              }
              var obj = {
                  'href' : href,
                  'target' : $G("target").checked ? "_blank" : '_self',
                  'title' : $G("title").value.replace(/^\s+|\s+$/g, ''),
                  '_href':href
              };
              //修改链接内容的情况太特殊了,所以先做到这里了
              //todo:情况多的时候,做到command里
              if(orgText && text.value != orgText){
                  link[browser.ie ? 'innerText' : 'textContent'] =  obj.textValue = text.value;
                  range.selectNode(link).select()
              }
              if(range.collapsed){
                  obj.textValue = text.value;
              }
              editor.execCommand('link',utils.clearEmptyAttrs(obj) );
              dialog.close();
          }
      }
      dialog.onok = handleDialogOk;
      $G('href').onkeydown = $G('title').onkeydown = function(evt){
          evt = evt || window.event;
          if (evt.keyCode == 13) {
              handleDialogOk();
              return false;
          }
      };
      $G('href').onblur = function(){
          if(!hrefStartWith(this.value,["http","/","ftp://"])){
              $G("msg").innerHTML = "<span style='color: red'>"+lang.httpPrompt+"</span>";
          }else{
              $G("msg").innerHTML = "";
          }
      };
  
      function hrefStartWith(href,arr){
          href = href.replace(/^\s+|\s+$/g, '');
          for(var i=0,ai;ai=arr[i++];){
              if(href.indexOf(ai)==0){
                  return true;
              }
          }
          return false;
      }
  
  
  </script>
  </body>
  </html>