当前位置:编程学习 > C#/ASP.NET >>

html 画带箭头直线问题

现在要做个类似编辑器的东西,页面中有个iframe

  <div style=" left:0; top:0;width:100%; height:100%; z-index:2; ">
    <iframe id="Page" frameborder="0" width=1280px height=800px src="设计区页面.htm" scrolling="no"></iframe>
  </div>

现在问题来了,我把该iframe的designMode设置为on(即开启状态),而designMode开启后,iframe中将不支持脚本,而我在“设计区页面.htm”中有用js画带箭头的直线,在iframe中不会显示出这个用js画的带箭头直线,所以想请教下大家,有什么办法解决吗?
或者不用js画,用别的方法什么的、。。
只要能解决就行。
谢谢啊!!!拜托了。 --------------------编程问答--------------------

function designModeOn()
{
var   contentPageObj   =   window.document.frames('Page'); 

contentPageObj.document.designMode = "on";
contentPageObj.document.execCommand("LiveResize"); 
contentPageObj.document.execCommand("2D-Position"); 
contentPageObj.document.execCommand("MultipleSelection"); 
}

这是模式打开的js --------------------编程问答-------------------- 没人吗? --------------------编程问答-------------------- 快来人啊。。。 --------------------编程问答-------------------- 1.designMode = ‘ON’时,onload事件处理js脚本;
 估计你的画图伴随着后台获取数据源,因此在设计时,无法拿到数据。
2.加入以下,可以规避错误:
if ( this.DesignMode == false ) { 
   //这里获取数据源,进行必要判断。    

3.先尝试给定值方式,前台纯js画箭头,之后再想办法获得整体的数据源。
4.另外,其他画图方式可采用VML画图(IE浏览器):
    <script type="text/javascript">
        var R =function(){};
        R.prototype.createLine = function (startX,startY,endX,endY){  
        var le = document.createElement( "<v:line><v:line>" );  
        le.from = startX + ',' + startY ;  
        le.to = endX + ',' + endY ;  
        le.strokecolor= "#2575b4" ;  
        le.strokeweight= "1pt" ;  
        return le;  
        } 
        function drowLine(x1,y1,x2,y2,divid)
        {
            var d =new R();
            document.getElementById("DIV容器的名字").appendChild(d.createLine(x1,y1,x2,y2));
        }
    </script> --------------------编程问答--------------------
引用 4 楼 black0707 的回复:
1.designMode = ‘ON’时,onload事件处理js脚本;
 估计你的画图伴随着后台获取数据源,因此在设计时,无法拿到数据。
2.加入以下,可以规避错误:
if ( this.DesignMode == false ) { 
   //这里获取数据源,进行必要判断。    

3.先尝试给定值方式,前台纯js画箭头,之后再想办法获得整体的数据源。
4.另外,其他画……


我原先也以为只要在designMode为off的时候加载iframe的js,然后再把designMode开启。

function init()
{
var   contentPageObj   =   window.document.frames('Page'); 

contentPageObj.document.designMode = "off";
contentPageObj.document.execCommand("LiveResize"); 
contentPageObj.document.execCommand("2D-Position"); 
contentPageObj.document.execCommand("MultipleSelection"); 
}

function designModeOn()
{
var   contentPageObj   =   window.document.frames('Page'); 

contentPageObj.document.designMode = "on";
contentPageObj.document.execCommand("LiveResize"); 
contentPageObj.document.execCommand("2D-Position"); 
contentPageObj.document.execCommand("MultipleSelection"); 
}

window.setTimeout("designModeOn()",1000);


可是吧,off的时候直线能加载成功,但1秒钟后designMode开启后,用js画的直线就会消失,vml的也一样,也就是说designMode为on的时候是不支持脚本的(网上好像也这么说),所以现在就想问问大家,有没有别的办法来解决这个 “带箭头直线问题”。。。。。。。 --------------------编程问答-------------------- 顶。啊啊啊啊啊 --------------------编程问答-------------------- 帮顶 纯粹
--------------------编程问答-------------------- 谢谢谢谢~ --------------------编程问答-------------------- 帮顶 我也有同样的问题 
顶 顶 --------------------编程问答-------------------- 专业 顶贴!接分! 不解释!
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,