Javascript 在嵌入light switch屏幕的iframe内部,如何从父自定义控件元素调用java脚本函数?
如果我有两个HTML页面,并且使用iframe将其中一个(子页面)嵌入到另一个(父页面)中,我可以使用Javascript 在嵌入light switch屏幕的iframe内部,如何从父自定义控件元素调用java脚本函数?,javascript,iframe,visual-studio-lightswitch,lightswitch-2013,Javascript,Iframe,Visual Studio Lightswitch,Lightswitch 2013,如果我有两个HTML页面,并且使用iframe将其中一个(子页面)嵌入到另一个(父页面)中,我可以使用 window.parent.myfunction(); 注意:不要在chrome上工作 我需要在VisualStudio灯光开关中应用此功能 我使用iframe将HTML页面嵌入到light switch屏幕中的自定义控件元素中,我想从自定义控件呈现调用JavaScript函数,并通过iframe中的按钮(onclick)使用它。。我尝试了window.parent.myfunction()
window.parent.myfunction();
注意:不要在chrome上工作
我需要在VisualStudio灯光开关中应用此功能
我使用iframe将HTML页面嵌入到light switch屏幕中的自定义控件元素中,我想从自定义控件呈现调用JavaScript函数,并通过iframe中的按钮(onclick)使用它。。我尝试了window.parent.myfunction()代码>但它不起作用
自定义控件渲染
myapp.LaunchURL.BigCustom_render = function (element, contentItem) {
element.innerHTML += '<div id ="mycontent" style="width:100%; height: 100%;"> </div>"';
document.getElementById("mycontent").innerHTML +=
'<iframe src="page.html" id ="myframe" name = "myframe" style="width:100%; height:100%;"></iframe>';
var iframe = $('iframe').contents();
iframe.find('#h2id').text("change the text please");
iframe.find('#A2').attr("value", "ok this works");
myapp.activeDataWorkspace.ApplicationData.Students.load().then(
function onComplete(result) {
var studentNames = "";
result.results.forEach(function (student) {
//alert(student.Name);
studentNames += (student.Name + " ");
});
// alert(studentNames);
iframe.find('#A1').attr("type", "text");
iframe.find('#A1').attr("value", studentNames);
}
);
function AlertOnChange()
{
alert("the student name changes");
}
//to have the entire webpage
$("iframe").parent().parent().css("width", "100%");
$("iframe").parent().parent().css("height", "1200px");
//to eliminate the header if you want to
$("span").parent().parent().parent().parent().parent().css("width", "0px");
$("span").parent().parent().parent().parent().parent().css("height", "0px");
};
myapp.LaunchURL.BigCustom\u render=function(元素,contentItem){
element.innerHTML+=“”;
document.getElementById(“mycontent”).innerHTML+=
'';
变量iframe=$('iframe').contents();
iframe.find('#h2id').text(“请更改文本”);
iframe.find('#A2').attr(“value”,“ok this works”);
myapp.activeDataWorkspace.ApplicationData.Students.load()。然后(
函数完成(结果){
var studentNames=“”;
result.results.forEach(函数(学生){
//警报(学生姓名);
studentNames+=(student.Name+“”);
});
//警报(学生姓名);
iframe.find('#A1').attr(“type”,“text”);
iframe.find('#A1').attr(“value”,学生姓名);
}
);
函数AlertOnChange()
{
警告(“学生姓名变更”);
}
//拥有整个网页
$(“iframe”).parent().parent().css(“宽度”,“100%”);
$(“iframe”).parent().parent().css(“高度”,“1200px”);
//如果要删除页眉,请执行以下操作:
$(“span”).parent().parent().parent().parent().parent().css(“宽度”,“0px”);
$(“span”).parent().parent().parent().parent().parent().css(“高度”,“0px”);
};
HTML页面
<!DOCTYPE html>
<html>
<head>
<title>Dating Form</title>
</head>
<body>
<h2 id="h2id"> the students</h2>
<br />
<br />
<form>
<input type="button" value="Get Students" onclick="window.parent.AlertOnChange();"></input>
<br />
<br />
<input type="hidden" id="A1" name="A1" value="hidden" onchange="window.parent.AlertOnChange()"> Students Names </input>
<br />
<br />
<input type="text" id="A2" name="A2" value="text this text box"> textbox </input>
</form>
<script>
//function childAlertOnChange()
//{
// //window.parent.AlertOnChange();
//}
</script>
</body>
</html>
日期表
学生们
学生姓名
文本框
//函数childAlertOnChange()
//{
////window.parent.AlertOnChange();
//}
此按钮不响应,也不执行任何操作
我在自定义控件render之外定义了该函数,它可以正常工作
这是我的密码
var AppData;
myapp.LaunchURL.BigCustom_render = function (element, contentItem) {
element.innerHTML += '<div id ="mycontent" style="width:100%; height: 100%;"> </div>"';
document.getElementById("mycontent").innerHTML +=
'<iframe src="page.html" id ="myframe" name = "myframe" style="width:100%; height:100%;"></iframe>';
var iframe = $('iframe').contents();
iframe.find('#h2id').text("change the text please");
iframe.find('#A2').attr("value", "ok this works");
//to have the entire webpage
$("iframe").parent().parent().css("width", "100%");
$("iframe").parent().parent().css("height", "1200px");
//to eliminate the header if you want to
$("span").parent().parent().parent().parent().parent().css("width", "0px");
$("span").parent().parent().parent().parent().parent().css("height", "0px");
};
function AlertOnChange() {
alert("the student name changes");
AppData.Students.load().then(
function onComplete(result) {
var studentNames = "";
result.results.forEach(function (student) {
//alert(student.Name);
studentNames += (student.Name + " ");
});
// alert(studentNames);
alert(studentNames);
$('iframe').contents().find('#A1').attr("type", "text");
$('iframe').contents().find('#A1').attr("value", studentNames);
}
);
}
myapp.LaunchURL.created = function (screen) {
// Write code here.
AppData = myapp.activeDataWorkspace.ApplicationData;
};
var-AppData;
myapp.LaunchURL.BigCustom_render=函数(元素,contentItem){
element.innerHTML+=“”;
document.getElementById(“mycontent”).innerHTML+=
'';
变量iframe=$('iframe').contents();
iframe.find('#h2id').text(“请更改文本”);
iframe.find('#A2').attr(“value”,“ok this works”);
//拥有整个网页
$(“iframe”).parent().parent().css(“宽度”,“100%”);
$(“iframe”).parent().parent().css(“高度”,“1200px”);
//如果要删除页眉,请执行以下操作:
$(“span”).parent().parent().parent().parent().parent().css(“宽度”,“0px”);
$(“span”).parent().parent().parent().parent().parent().css(“高度”,“0px”);
};
函数AlertOnChange(){
警告(“学生姓名变更”);
AppData.Students.load()。然后(
函数完成(结果){
var studentNames=“”;
result.results.forEach(函数(学生){
//警报(学生姓名);
studentNames+=(student.Name+“”);
});
//警报(学生姓名);
警报(学生姓名);
$('iframe').contents().find('A1').attr(“type”,“text”);
$('iframe').contents().find('A1').attr(“value”,studentNames);
}
);
}
myapp.LaunchURL.created=函数(屏幕){
//在这里写代码。
AppData=myapp.activeDataWorkspace.ApplicationData;
};