
其實,他們之間的調用還是很簡單的~
基礎篇
一、父頁面調用子頁面中的JS
我們先創建一個子窗體
代碼如下:
var win
$(function () {
Root = $('#Root').val();//設置根目錄
});
function OpenPlayer(id, type, add) {
//這里是用來限制同一個窗口只能彈出一次的
//其實就算不做限制,只要window.open參數中的name相同,就不會重復打開
//window.open中的參數可以參考別的文章,有很多
if (win == null || win.closed) {
win = window.open('http://loaclhost/sl.aspx', 'win', 'width=870,height=650,top=1,left=0,scrollbars=0,resizable=0,status=1', true);
}
那怎么調用呢?
代碼如下:
this.alert('hello world!');
win.alert('hello world!');
win.onload = function () { this.alert('test'); };
眾所周知,第一行是在本窗口彈出一個提示框(this可以一般都會省略~)
那其實,this和win指向的是同類型,不同的對象罷了
所以,他們的方法都是一樣的。
第二行就是在子窗口中彈出一個提示框的代碼。
你還可以在父窗體中寫子窗體的事件~
第三行的作用是,當子窗體加載完成后,父窗口彈出提示框。
二、子窗體調用父窗體
這個和上面差不多,當父窗體打開一個子窗體后,你可以這樣訪問到父窗體
window.opener
這個對象就是父窗體,直接調用相應的函數即可
三、子窗體調用silverlight函數或對象
這個在MSND上有詳細介紹,中文的~在這里,我幫大家提一下主要的幾個步驟(調用silverlight對象的方法就不貼出來了,里面有)
另附 傳送門:
1、現在silverlight中,給需要被調用的函數加上一個attribute——ScriptableMember
代碼如下:
// MyScriptableManagedType.cs
using System.Windows.Browser;
namespace HB {
public class MyScriptableManagedType {
[ScriptableMember()]
public string MyToUpper(string str) {
return str.ToUpper();
}
[ScriptableMember()]
public string Name { get; set; }
}
}
2、在構造函數中注冊這個對象
代碼如下:
MyScriptableManagedType smt = new MyScriptableManagedType();
HtmlPage.RegisterScriptableObject("mySLapp", smt);
//如果這個函數不是外部類中的函數,而是sl主體的函數,那直接傳入this指針就可以了
3、打開slverlight所在的頁面
在 Silverlight 對象標記中,添加具有值"pluginLoaded"的 onLoad 屬性。
下面的示例演示用于 Silverlight 控件引用的 HTML 標記。
代碼如下:
4、在頁上現有的 script 元素中,添加 pluginLoaded 方法的 JavaScript 函數。
使用 getHost 方法獲取對 Silverlight 控件的引用。下面的示例演示 pluginLoaded 方法的 JavaScript 代碼。
代碼如下:
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com