如果查看引用链接,它有一个iframe访问其jquery的父引用。如果,而不是iframe,它是一个子窗口,这可能是同样的事情吗?
P.S。
尽管语法错误的原因不明,但如果我继续执行错误,则单击处理程序仍可正常工作吗?
语法错误
我return window.opener.$
调用$('#Button1').
时,我收到了非描述性语法错误,因此,我没有收到警报。
父窗口
<html>
<body>
<input id="Parent_Button1" type="button" value="Pop out window" />
<script>
window.onload = function () {
$('#Parent_Button1').on('click', function () {
window.open('pop-out-win.aspx', '', 'width=400,height=300');
});
}
</script>
</body>
</html>
子窗口
<input id="Button1" type="button" value="push me" />
<script>
window.onload = function () {
if (typeof (jQuery) == "undefined") {
var iframeBody = document.getElementsByTagName("body")[0];
var jQuery = function (selector) { return window.opener.$(selector, iframeBody); };
var $ = jQuery;
var btn1 = $('#Button1');
btn1.on('click', function () {
alert('achievement unlocked!')
});
}
}
</script>
答案 0 :(得分:0)
我没有解决浏览器兼容性,可读性等问题,但是这样:
public static String ReadJobParamDefault(jobName, String parameter) {
def job = Hudson.instance.getJob(jobName)
String ret = null;
if (job != null && parameter != null && parameter.trim().length() > 0) {
job.getProperties().values().each {
if(it instanceof hudson.model.ParametersDefinitionProperty) {
if (it.getParameterDefinition(parameter) != null) {
ret = it.getParameterDefinition(parameter).
getDefaultParameterValue().getValue();
}
}
}
}
return ret;
}
这是以上可读形式的脚本标记的内容:
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
function myFunction() {
var childWindow = window.open("", "childWindow", "width=200,height=100");
var script = childWindow.document.createElement("script");
script.innerHTML = 'if (typeof(jQuery) == "undefined") { window.jQuery = function(selector) { return window.opener.jQuery(selector, document);};jQuery = window.opener.$.extend(jQuery,window.opener.$);window.$ = jQuery;var msg = "Created with jQuery!";$("body").append(\'<button onclick="alert(msg)">Text</button>\');}';
childWindow.document.getElementsByTagName("head")[0].appendChild(script);
}
</script>
<p>Click to test child window jQuery injection.</p>
<button onclick="myFunction()">Try it</button>
</body>
工作Fiddle示例