作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在新选项卡中运行脚本。我使用的代码是这样的:
$ = jQuery;
function openAndPush(url, id) {
var win = window.open('https://example.com' + url + '?view=map');
var element = $('<script type="text/javascript">console.log("Starting magic...");var region_id='+id+';$=jQuery;var p=$(\'div["se:map:paths"]\').attr(\'se:map:paths\');if(p){console.log("Found! pushing..."); $.get(\'https://localhost:9443/addPolygon\', {id: region_id, polygon: p}, function(){console.log("Done!")})}else{console.log("Not found!");}</script>').get(0);
setTimeout(function(){ win.document.body.appendChild(element);
console.log('New script appended!') }, 10000);
}
openAndPush('/target', 1)
)然后在另一个检查器中检查代码时,其中一个用于新窗口,控制台消息 Starting magic...
未显示(我等待 10 秒甚至更多)。然而,新的 DOM 元素(我正在创建的这个脚本)显示在 Elements 选项卡中(并且,在第一个控制台/检查器中,我可以看到 New script appended!
消息)。 jQuery
都存在,但不占用
$
标识符,这似乎是未定义的 - 所以我手动占用它)
最佳答案
不要在文档中嵌入脚本元素,而是这样做。
function openAndPush(url, id) {
var win = window.open('https://www.google.com');
win.test = function () {
win.alert("Starting magic...");
}
win.test();
setTimeout(function () {
win.document.body.appendChild(element);
console.log('New script appended!')
}, 10000);
}
关于javascript - 如何在另一个(新打开的)选项卡中运行脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51310680/
我是一名优秀的程序员,十分优秀!