我刚为网站写了一个小脚本来隐藏包含广告的元素(这是一个游戏网站,显示他们正在撰写的游戏的购买选项)。奇怪的是,脚本运行正常。我只将CSS属性display
设置为none
。它按预期工作,这不应该破坏CSS或JavaScript选择器。但是当脚本启用时,它不会让我点击图像(以电影模式查看)或启动视频。
点击此类媒体元素时,我收到以下消息:
gamestar.min.js?cc=310520171659:1 Uncaught TypeError: $(...).modal is not a function
at openLightbox (gamestar.min.js?cc=310520171659:1)
at HTMLAnchorElement.<anonymous> (gamestar.min.js?cc=310520171659:1)
at HTMLBodyElement.dispatch (jquery.min.js:3)
at HTMLBodyElement.r.handle (jquery.min.js:3)
没有脚本,它会通过Ajax请求正确加载媒体:
jquery.min.js:4 XHR finished loading: GET "http://www.gamestar.de/gs_cb/index.cfm?event=content%3Aajax.zoom&id=132536&…Star+Wars%3A+Battlefront+2%3C%2Fb%3E%3Cbr%3E+Reveal+Screenshot+1&clicked=1".
脚本如何以这种方式与网站互动?我该如何防止这种情况?
这是我的剧本:
// ==UserScript==
// @name Better Gamestar
// @namespace k-ruben
// @version 1.0
// @description Disable Buying options
// @author You
// @match http://www.gamestar.de/*
// @grant none
// @require http://code.jquery.com/jquery-2.2.0.min.js
// ==/UserScript==
(function() {
'use strict';
$(document).ready(function() {
var offerteaser = $(".offerteaser-box").parent().parent();
offerteaser.css("display", "none");
});
})();