Windowless=true 상황에서 TextBox가 입력할 수 없는 문제를 철저히 해결하다

9136 단어 window
            Silverlight       Html content   ,         Silverlight aspx html     div, div include  iframe,
      windowless=true  HTML Silverlight    ,    iframe     Silverlight     ,         big mistake,
  Silverlight       TextBox         ,      ,      Silverlight   bug。

검색한 결과 아직 철저한 해결 방법이 없다는 것을 발견했다. 모두 html의 input을 통해 대체된 것이다. 그러나 이런 문제는 input의 위치가 실버라이트에 내장된 레이아웃으로 제어할 수 없다는 것이다. 다음은 CSS의 정의인 z-index를 통해 iframe를 실버라이트 앞에 두는 것을 고려했다. 이렇게 하면 windowless=false의 상황에서 html을 실버라이트 앞에 표시할 수 있지만 또 하나의 문제가 생겼다.그러나silverlight 이쪽 클릭 mouse에서 iframe 초점을 잃은 후 html의zindex는silverlight 뒤로 달려가 html을 볼 수 없게 되었다.
기왕 이렇게 된 이상 우리는 초점을 주는 방식으로 해결한다. 바로javascript의iframe이다.focus () 결과 문제는 여전한 것 같습니다. html로 실버라이트와 함께 방송하려면 정말 큰일입니다. 하지만 마지막에 Silverlight에서net의 스티커에서 작은 디테일을 발견했습니다. 바로 iframe의 속성에 값을 부여하는 것입니다. 보기에는 하나의 등호이지만 초점 문제를 해결했습니다. 다음은 코드를 공유합니다.
<html>

<head>

    <title>tests</title>

    <script type="text/javascript">

        function onmyblur() {

           var d = document.getElementById("myid");

            d.style.height = 0;

            d.style.height = 400;

           // d.focus();

        }

    </script>

       <style type="text/css">

    html, body {

	    height: 100%;

	    overflow: auto;

    }

    body {

	    padding: 0;

	    margin: 0;

    }

    #silverlightControlHost {

	    height: 100%;

	    text-align:center;

    }

    </style>

</head>

<body>

    <div id="silverlightControlHost">

        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2"

            width="100%" height="100%">

            <param name="source" value="ClientBin/test4.xap" />

            <param name="onError" value="onSilverlightError" />

            <param name="background" value="white" />

            <param name="minRuntimeVersion" value="4.0.50303.0" />

            <param name="autoUpgrade" value="true" />

            <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50303.0" style="text-decoration: none">

                <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight"

                    style="border-style: none" />

            </a>

        </object>

        <iframe id="_sl_historyFrame" style="visibility: hidden; height: 0px; width: 0px;

            border: 0px"></iframe>

    </div>

    <!--onblur="onmyblur();"-->

    <div style="background-color:Gray;position: absolute; z-index: 1010; left: 0px; top: 0px; width: 100%;height:100px">

    </div>

    <div id="mydiv"  style="position: absolute; z-index: 1010; left: 250px; top: 50px; width: 300px;

        height: 400px;">

        <iframe id="myid" onblur="onmyblur();"  name="myid" src="http://www.baidu.com">  </iframe>

    </div>

</body>

</html>

도움이 되었으면 좋겠습니다~
 
 
 
본 블로그의 내용을 옮겨 싣는 데는 반드시 출처를 밝혀 주십시오. 감사합니다.

좋은 웹페이지 즐겨찾기