Tengo un archivo javascript, ubicado en un dominio, por ejemplo: http://mydomain.com/script.js

Algunas páginas (de otros dominios) incluyen mi javascript usando la etiqueta SCRIPT. Pueden incluirlo a través de http o https

<script src="http://mydomain.com/script.js"></script>
or
<script src="https://mydomain.com/script.js"></script>

También pueden incluir mi script usando iframes de terceros, por ejemplo:

<iframe src="http://3rdparty.com/frame.php">

Donde http://3rdparty.com/frame.php salidas

<script src="http://mydomain.com/script.js"></script>
or
<script src="https://mydomain.com/script.js"></script>

Solo puedo editar el archivo javascript estático script.js en mydomain.com.

Cómo puedo detectar qué protocolo usé para cargar mi javascript (https://mydomain.com/script.js o http: / /mydomain.com/script.js)?

2
IvanGL 30 jun. 2011 a las 12:01

3 respuestas

La mejor respuesta

No creo que tenga la capacidad de identificar dentro del código cómo se ha cargado. La mejor sugerencia que se me ocurre es que el http y el https apunten a diferentes ubicaciones (es decir, que sean sitios diferentes) y que tengan algo dentro del código que indique cuál se está recogiendo.

protocolo var = 'http'

O

protocolo var = 'https'

Sin embargo, significa mantener dos archivos y dos sitios.

ETA: Pensé que James Wiseman tenía la respuesta, pero, por supuesto, eso solo devolverá el protocolo de la PÁGINA, no el SCRIPT. Si sabe que están relacionados, eso funcionaría (a menudo, el https se carga en las páginas https y vv). Pero no es definitivo.

Es una buena solución si puede estar seguro de que el protocolo en la página es el mismo que en el script.

1
Schroedingers Cat 30 jun. 2011 a las 08:16

Puede utilizar esto:

document.location.protocol + "//mydomain.com/script.js"
4
yoyo-yuan 30 jun. 2011 a las 08:12

Puede usar un URL relativa del protocolo:

<script src="//mydomain.com/script.js"></script>
19
Pekka 30 jun. 2011 a las 08:04