其實,他們之間的調(diào)用還是很簡單的~
基礎(chǔ)篇
一、父頁面調(diào)用子頁面中的JS
我們先創(chuàng)建一個子窗體
代碼如下:
var win
$(function () {
Root = $('#Root').val();//設(shè)置根目錄
});
function OpenPlayer(id, type, add) {
//這里是用來限制同一個窗口只能彈出一次的
//其實就算不做限制,只要window.open參數(shù)中的name相同,就不會重復打開
//window.open中的參數(shù)可以參考別的文章,有很多
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);
}
那怎么調(diào)用呢?
代碼如下:
this.alert('hello world!');
win.alert('hello world!');
win.onload = function () { this.alert('test'); };
眾所周知,第一行是在本窗口彈出一個提示框(this可以一般都會省略~)
那其實,this和win指向的是同類型,不同的對象罷了
所以,他們的方法都是一樣的。
第二行就是在子窗口中彈出一個提示框的代碼。
你還可以在父窗體中寫子窗體的事件~
第三行的作用是,當子窗體加載完成后,父窗口彈出提示框。
二、子窗體調(diào)用父窗體
這個和上面差不多,當父窗體打開一個子窗體后,你可以這樣訪問到父窗體
window.opener
這個對象就是父窗體,直接調(diào)用相應(yīng)的函數(shù)即可
三、子窗體調(diào)用silverlight函數(shù)或?qū)ο?
這個在MSND上有詳細介紹,中文的~在這里,我?guī)痛蠹姨嵋幌轮饕膸讉€步驟(調(diào)用silverlight對象的方法就不貼出來了,里面有)
另附 傳送門:
1、現(xiàn)在silverlight中,給需要被調(diào)用的函數(shù)加上一個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、在構(gòu)造函數(shù)中注冊這個對象
代碼如下:
MyScriptableManagedType smt = new MyScriptableManagedType();
HtmlPage.RegisterScriptableObject("mySLapp", smt);
//如果這個函數(shù)不是外部類中的函數(shù),而是sl主體的函數(shù),那直接傳入this指針就可以了
3、打開slverlight所在的頁面
在 Silverlight 對象標記中,添加具有值"pluginLoaded"的 onLoad 屬性。
下面的示例演示用于 Silverlight 控件引用的 HTML 標記。
代碼如下:
4、在頁上現(xiàn)有的 script 元素中,添加 pluginLoaded 方法的 JavaScript 函數(shù)。
使用 getHost 方法獲取對 Silverlight 控件的引用。下面的示例演示 pluginLoaded 方法的 JavaScript 代碼。
代碼如下:
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com