Размещение вызова к impl-> Мурлыканье в cpp файле означает, что в будущем Вы могли сделать что-то совершенно другое, не имея необходимость изменять заголовочный файл. Возможно, в следующем году они обнаруживают вспомогательный метод, который они, возможно, назвали вместо этого и таким образом, они могут изменить код, чтобы назвать это непосредственно и не использовать impl-> Мурлыканье вообще. (Да, они могли достигнуть того же самого путем обновления фактического impl:: метод Мурлыканья также, но в этом случае Вы застреваете с дополнительным вызовом функции, который достигает только вызывания следующей функции в свою очередь)
, Это также означает, что заголовок только имеет определения и не имеет никакой реализации, которая делает для более чистого разделения, которое является смыслом идиомы.
Добавьте идентификатор к тегу скрипта:
<script type="text/javascript" id="myScript" src="http://bla.com/js/script.js"></script>
И в http://bla.com/js/script.js
:
var myScript = document.getElementById('myscript');
var myScriptSrc = myScript.getAttribute('src');
alert(myScriptSrc); // included for debugging
Вы должны иметь возможность для управления значением myScriptSrc
, чтобы получить путь к любому другому содержимому на bla.com
.
Я думаю, что этот образец - это то, что Джеймс Блэк имел в виду в его ответ.
Наконец, всем, кто предлагает использовать document.location
, имейте в виду, что если вам нужен доступ только для чтения к текущему адресу страницы, вы должны использовать document .URL
или window.location
. Если вы хотите установить адрес страницы, вы всегда должны использовать window.location.href
. Хотя window.location = 'location';
работает, меня всегда беспокоило, что String присваивается Location. Я' Я не знаю, почему, поскольку JavaScript допускает все виды других неявных преобразований типов.
document.location
изначально было свойством только для чтения, хотя браузеры Gecko позволяют вам назначать ему также. Для кроссбраузерной безопасности используйте вместо него window.location . Чтобы получить только URL-адрес в виде строки, можно использовать свойство document.URL только для чтения. документ
; используйте вместо этого свойство document.URL . Свойство document.location
, которое является синонимом для document.URL
, устарело. Вы можете прочитать document.location
, но вы также можете просто использовать относительные URL-адреса
Вы можете посмотреть в теге сценария местоположение javascript, и, используя document.location, вы, вероятно, сможете определить относительную адресацию, чтобы определить, где может находиться файл css.
Свойство стека объектов ошибок может предоставлять информацию об URL.
try
{
throw new Error();
}
catch(exc)
{
console.log(exc.stack);
}
К сожалению, Webkit не поддерживает (в отличие от Chromium) свойство стека. Есть несколько браузеров, поддерживающих эту функцию: http://173.45.237.168/reference/html/api/Error.html#Error.stack
Вместо стека Webkit предоставляет свойство sourceURL, вот пример использования :
try
{
throw new Error();
}
catch(exc)
{
console.log(exc.sourceURL);
}