如何在Tampermonkey中打开带有网页的javascript窗口?

时间:2015-01-10 21:55:16

标签: javascript jquery google-chrome-extension

所以我想为网站创建一个链接,点击链接后,我想在javascript弹出窗口中打开页面。 我为此创建了一个函数,但不幸的是我在chrome console中收到了这条消息:

"Uncaught ReferenceError: myFunction is not defined"

我的脚本如下所示:

// ==UserScript== 
// @name filmkodiframe 
// @namespace  http://neocsatblog.mblx.hu
// @description Nézd meg a filmjeidet egyszerűbben filmespolcon!
// @require http://code.jquery.com/jquery-1.11.2.min.js
//  @match      *://*.online-filmespolc.net/*

// ==/UserScript==

// Finnaly attach it into the DOM
$(document).ready(function() {
    $('<a target="_blank" style="cursor:pointer;color:blue;hover:text-decoration:none;" title="A filmkód oldal megnyitása" class="lightview" onclick="myFunction()" id="myFrame" name="myFrame">Film</a>').appendTo('#password');
        function myFunction() {
             window.open("http://filmkod.uw.hu/index.php", "_blank", "toolbar=yes, scrollbars=yes, resizable=yes, top=500, left=500, width=400, height=400");
        }
});

我不明白为什么不起作用,因为我使用文档准备好了,并且链接下的javascript。

2 个答案:

答案 0 :(得分:2)

只需使用jQuery事件处理程序并删除内联onclick

$('<a target="_blank"...</a>').click(myFunction).appendTo('#password');

答案 1 :(得分:0)

将myFunction从document.ready函数移出到全局命名空间中,它将起作用,如下所示:

window.newNamespace = {};
newNamespace.myFunction = function() {
    window.open("http://filmkod.uw.hu/index.php", "_blank", "toolbar=yes, scrollbars=yes, resizable=yes, top=500, left=500, width=400, height=400");
}
$(document).ready(function() {
    $('<a target="_blank" style="cursor:pointer;color:blue;hover:text-decoration:none;" title="A filmkód oldal megnyitása" class="lightview" onclick="newNamespace.myFunction()" id="myFrame" name="myFrame">Film</a>').appendTo('#password');
});