我注意到GitHub和Facebook现在都在实施此策略,这限制了第三方脚本在其体验/站点内运行.
有没有办法使用JavaScript检测文档是否针对CSP运行?我正在编写一个bookmarklet,如果他们在不支持嵌入脚本标记的网站上,则希望给用户一条消息.
我想我有这个界面:
public interface MyInterface {
void doStuff();
}
Run Code Online (Sandbox Code Playgroud)
具体实施:
public class HardCoreConcrete implements MyInterface {
void doStuff() {
// i really do stuff, honest
}
}
Run Code Online (Sandbox Code Playgroud)
假设我有这个注释:
@Target(ElementType.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
Class<MyInterface> clazz;
}
Run Code Online (Sandbox Code Playgroud)
它会像这样使用:
@MyAnnotation(clazz = HardCoreConcrete.class)
public class SomeOtherClass {
...
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?我的编译器抱怨,对于clazz,它期望类型MyInterface!但是HardCoreConcrete实现了MyInterface.
难道我做错了什么?这是不允许的?我运气不好吗?