сообщение об ошибке: ожидается ")" перед "NSRect"

Если целевая страница находится в том же домене (то есть имеет одинаковую историю с вашей страницей), и вы не возражаете против создания новых вкладок (1), вы можете (ab) использовать некоторый JavaScript:

see tenth paragraph on another page

Trivia:

var w = window.open('some URL of the same origin');
w.onload = function(){
  // do whatever you want with `this.document`, like
  this.document.querySelecotor('footer').scrollIntoView()
}

Рабочим примером такого «эксплойта», который вы можете попробовать прямо сейчас, может быть:

javascript:(function(url,sel,w,el){w=window.open(url);w.addEventListener('load',function(){w.setTimeout(function(){el=w.document.querySelector(sel);el.scrollIntoView();el.style.backgroundColor='red'},1000)})})('https://stackoverflow.com/questions/45014240/link-to-a-specific-spot-on-a-page-i-cant-edit','footer')

Если вы введете это в строку местоположения (помните, что Chrome удаляет префикс javascript: при вставке из буфера обмена) или делает его href значением любой ссылки на этой странице (с помощью инструментов разработчика) и нажимает на нее , вы получите другую (дублирующую) страницу вопроса SO, прокручиваемую до нижнего колонтитула, а нижний колонтитул окрашен в красный цвет. (Задержка добавлена ​​в качестве обходного пути для загружаемого нижнего колонтитула, загруженного ajax после загрузки.)

Примечания

  • Проверено в текущих браузерах Chrome и Firefox, как правило, должно работать, поскольку оно основано на определенном стандартном поведении.
  • Невозможно проиллюстрировать в интерактивном фрагменте здесь в SO, потому что они изолированы от исходной страницы.
  • MDN: Window.open ()
  • (1) window.open(url,'_self'), кажется, нарушает load событие; в основном делает window.open вести себя как обычная a href="" навигация по клику; еще не исследовали

1
задан meghaljani 28 July 2010 в 05:08
поделиться

2 ответа

NSRect, NSSize, NSPoint и подобные типы недоступны на iPhone. Вместо этого используйте CGRect / CGSize / CGPoint.

1
ответ дан 2 September 2019 в 22:39
поделиться

Я не знаю, почему он не определен из основного заголовка, но попробуйте использовать CGRect .

Он функционально эквивалентен и определен в основных заголовках

Из документации Apple:

При сборке для 64-разрядных систем или при сборке 32-разрядных, например 64-разрядных, NSRect определяется типом CGRect.

1
ответ дан 2 September 2019 в 22:39
поделиться