Ignore:
Timestamp:
02/13/07 12:54:39 (13 years ago)
Author:
htanaka
Message:

fix #949 InsertImage? dialog can preview stripped url image.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/InsertImage/insert_image.html

    r694 r733  
    1616} 
    1717 
     18function resolveRelativeUrl(base, url){ 
     19        if(url.match(/^([^:]+\:)?\//)){ 
     20                return url; 
     21        } 
     22        else{ 
     23                var b = base.split("/"); 
     24                if(b[b.length - 1] == ""){ 
     25                        b.pop(); 
     26                } 
     27                var p = url.split("/"); 
     28                if(p[0] == "."){ 
     29                        p.shift(); 
     30                } 
     31                while(p[0] == ".."){ 
     32                        b.pop(); 
     33                        p.shift(); 
     34                } 
     35                return b.join("/") + "/" + p.join("/"); 
     36        } 
     37} 
     38 
    1839function Init() { 
    1940  __dlg_translate('Xinha'); 
     
    2344  document.getElementById("f_align").selectedIndex = 5; 
    2445  var param = window.dialogArguments; 
    25   if (param) { 
    26       document.getElementById("f_url").value = param["f_url"]; 
    27       document.getElementById("f_alt").value = param["f_alt"]; 
    28       document.getElementById("f_border").value = param["f_border"]; 
    29       document.getElementById("f_align").value = param["f_align"]; 
    30       document.getElementById("f_vert").value = param["f_vert"]; 
    31       document.getElementById("f_horiz").value = param["f_horiz"]; 
    32       window.ipreview.location.replace(param.f_url); 
     46  if (param["f_base"]) { 
     47      document.getElementById("f_base").value = param["f_base"]; 
     48  } 
     49  document.getElementById("f_url").value    = param["f_url"] ? param["f_url"] : ""; 
     50  document.getElementById("f_alt").value    = param["f_alt"] ? param["f_alt"] : ""; 
     51  document.getElementById("f_border").value = (typeof param["f_border"]!="undefined") ? param["f_border"] : ""; 
     52  document.getElementById("f_align").value  = param["f_align"] ? param["f_align"] : ""; 
     53  document.getElementById("f_vert").value   = (typeof param["f_vert"]!="undefined") ? param["f_vert"] : ""; 
     54  document.getElementById("f_horiz").value  = (typeof param["f_horiz"]!="undefined") ? param["f_horiz"] : ""; 
     55  if (param["f_url"]) { 
     56      window.ipreview.location.replace(resolveRelativeUrl(param.f_base, param.f_url)); 
    3357  } 
    3458  document.getElementById("f_url").focus(); 
     
    6892  var f_url = document.getElementById("f_url"); 
    6993  var url = f_url.value; 
     94  var base = document.getElementById("f_base").value; 
    7095  if (!url) { 
    7196    alert(i18n("You must enter the URL")); 
     
    7398    return false; 
    7499  } 
    75   window.ipreview.location.replace(url); 
     100  window.ipreview.location.replace(resolveRelativeUrl(base, url)); 
    76101  return false; 
    77102} 
     
    85110<!--- new stuff ---> 
    86111<form action="" method="get"> 
     112<input type="hidden" name="base" id="f_base"/> 
    87113<table border="0" width="100%" style="padding: 0px; margin: 0px"> 
    88114  <tbody> 
Note: See TracChangeset for help on using the changeset viewer.